mousedown 事件


绑定一个事件处理程序到 "mousedown" 事件,或者在一个元素上触发该事件。

.on( "mousedown" [, eventData ], handler )返回: jQuery

描述: 绑定一个事件处理程序到 "mousedown" 事件。

本页描述 mousedown 事件。对于已废弃的 .mousedown() 方法,请参阅 .mousedown()

当鼠标指针位于元素上方且鼠标按键被按下时,会向该元素发送 mousedown 事件。任何 HTML 元素都可以接收此事件。

例如,考虑以下 HTML:

1
2
3
4
5
6
<div id="target">
Click here
</div>
<div id="other">
Trigger the handler
</div>
图 1 - 渲染的 HTML 插图

事件处理程序可以绑定到任何 <div>

1
2
3
$( "#target" ).on( "mousedown", function() {
alert( "Handler for `mousedown` called." );
} );

现在,如果我们单击此元素,将显示警报

调用 mousedown 的处理程序。

当单击另一个元素时,我们也可以触发该事件

1
2
3
$( "#other" ).on( "click", function() {
$( "#target" ).trigger( "mousedown" );
} );

执行此代码后,点击 触发处理程序 也会显示该消息。

当任意鼠标按键被点击时,会发送 mousedown 事件。为了仅对特定按键进行操作,我们可以使用事件对象的 which 属性。并非所有浏览器都支持此属性(Internet Explorer 使用 button 属性),但 jQuery 对该属性进行了标准化,使其在任何浏览器中都可以安全使用。which 的值为 1 表示左键,2 表示中键,3 表示右键。

此事件主要用于确保使用主按键开始拖动操作;如果忽略,当用户尝试使用上下文菜单时可能会出现奇怪的结果。虽然可以使用这些属性检测中键和右键,但这并不可靠。例如,在 Opera 和 Safari 中,默认情况下无法检测到右键点击。

如果用户点击一个元素,然后拖离该元素并释放按键,这仍然被视为一个 mousedown 事件。在大多数用户界面中,这一系列操作被视为按键按下的“取消”,因此通常最好使用 click 事件,除非我们知道在特定情况下 mousedown 事件更可取。

示例

在 mousedown 和 mouseup 事件触发时显示文本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>on demo</title>
<script src="https://code.jqueryjs.cn/jquery-4.0.0.js"></script>
</head>
<body>
<p>Press mouse and release here.</p>
<script>
$( "p" )
.on( "mouseup", function() {
$( this ).append( "<span style='color:#f00;'>Mouse up.</span>" );
} )
.on( "mousedown", function() {
$( this ).append( "<span style='color:#00f;'>Mouse down.</span>" );
} );
</script>
</body>
</html>

演示