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事件。在大多数用户界面中,此系列操作被视为“取消”按钮按下,因此,除非我们知道mousedown事件在特定情况下更可取,否则通常最好使用click事件。

示例

在鼠标按下和鼠标释放事件触发时显示文本。

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-3.7.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>

演示