# .mousedown()

所属分类：事件 > 鼠标事件 英文文档：.mousedown()

## .mousedown( handler(eventObject) )返回: jQuery

描述: 为 JavaScript 的 "mousedown" 事件绑定一个处理函数，或者触发元素上的该事件。

- #### 添加的版本: 1.0.mousedown( handler(eventObject) )

  - handler(eventObject)
    类型: Function()
    每次事件触发时会执行的函数。

- #### 添加的版本: 1.4.3.mousedown( [eventData ], handler(eventObject) )

  - eventData
    类型: PlainObject
    一个对象，它包含的数据键值对映射将被传递给事件处理程序。
  - handler(eventObject)
    类型: Function()
    每次事件触发时会执行的函数。

- #### 添加的版本: 1.0.mousedown()

  - 这个方法不接受任何参数。

这个方法的前两个用法是 `.bind('mousedown', handler)` 的快捷方式，第3个不带参数的用法是 `.trigger('mousedown')` 的快捷方式。

当鼠标指针在元素上和按下鼠标键，`mousedown`事件被发送到这个元素。任何HTML元素都可以收到此事件。

举例来说，请看下面的HTML：

1 2 3 4 5 6 |
    <div id="target">  Click here</div><div id="other">  Trigger the handler</div>

这个事件可以绑定到任何 `<div>`:

1 2 3 |
    $('#target').mousedown(function() {  alert('Handler for .mousedown() called.');});

现在，如果我们点击这个元素，警报显示：

Handler for .mousedown() called.

我们也可以通过点击其它元素，手动触发另一个元素上的该事件：

1 2 3 |
    $('#other').click(function() {  $('#target').mousedown();});

这些代码执行后，点击Trigger the handler 同样警报显示。

任何鼠标按钮被按下时`mousedown`事件就会被发送。若要区分是哪个键被按下了，我们可以使用 event 对象的`which`属性。并非所有浏览器都支持这个属性（在 IE 中，要使用 button 属性来代替），但是jQuery对该属性进行了标准化，因此你可以放心的在任何浏览器中使用该属性。敲击鼠标左键`which`的值是1，敲击鼠标中键`which`的值是2，敲击鼠标右键`which`的值是。

此事件主要用于确保主要按钮是用来开始拖动操作;如果不进行这样的判断，当用户尝试使用上下文菜单，可能会出现奇怪的结果。虽然可以通过这些属性，来检测鼠标中键和右键的点击，但不一定是可靠的。例如，在 Opera 和 Safari 中，默认情况下是无法检测鼠标右键的点击的。

如果在一个元素按住了鼠标不放，并且拖动鼠标离开这个元素，并释放鼠标键，这仍然是算作`mousedown`事件。在大多数的用户界面，这个动作的顺序被视为一个“取消”的按键，所以通常最好使用`click`事件，除非我们知道`mousedown`事件针对一个特定情况较好。

## 例子:

#### 当MouseUp和MouseDown事件触发时，显示文本时。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
    <!DOCTYPE html><html><head>  <script src="https://code.jquery.com/jquery-latest.js"></script></head><body>  <p>Press mouse and release here.</p> <script>    $("p").mouseup(function(){      $(this).append('<span style="color:#F00;">Mouse up.</span>');    }).mousedown(function(){      $(this).append('<span style="color:#00F;">Mouse down.</span>');    }); </script> </body></html>

#### Demo: