目录
.on( "mousemove" [, eventData ], handler )返回值: jQuery
描述: 为“mousemove”事件绑定一个事件处理程序。
此页面描述了 mousemove 事件。有关已弃用的 .mousemove() 方法,请参阅 .mousemove()。
当鼠标指针在元素内移动时,mousemove 事件会发送到该元素。任何 HTML 元素都可以接收此事件。
例如,考虑以下 HTML:
|
1
2
3
4
5
6
7
|
|
事件处理程序可以绑定到目标元素
|
1
2
3
4
5
|
|
现在,当鼠标指针在目标按钮内移动时,消息将被追加到 <div id="log">
mousemove 事件处理程序在 (399, 48) 被调用
mousemove 事件处理程序在 (398, 46) 被调用
mousemove 事件处理程序在 (397, 44) 被调用
mousemove 事件处理程序在 (396, 42) 被调用
要手动触发事件,请使用 .trigger( "mousemove" )
|
1
2
3
|
|
执行此代码后,单击“触发”按钮也将追加消息
mousemove 事件处理程序在 (undefined, undefined) 被调用
在跟踪鼠标移动时,您通常需要知道鼠标指针的实际位置。传递给处理程序的事件对象包含有关鼠标坐标的一些信息。.clientX、.offsetX 和 .pageX 等属性可用,但浏览器对它们的支持各不相同。幸运的是,jQuery 会对 .pageX 和 .pageY 属性进行标准化,以便所有浏览器都能使用它们。这些属性提供相对于文档左上角的鼠标指针的 X 和 Y 坐标,如上例输出所示。
请记住,每当鼠标指针移动时,即使只移动一个像素,mousemove 事件都会被触发。这意味着在很短的时间内可能会生成数百个事件。如果处理程序需要执行任何重要的处理,或者存在多个该事件的处理程序,这可能会严重消耗浏览器的性能。因此,对 mousemove 处理程序进行尽可能多的优化,并在不再需要它们时尽快解除绑定,这一点非常重要。
一种常见的模式是在 mousedown 处理程序中绑定 mousemove 处理程序,并在相应的 mouseup 处理程序中解除绑定。如果实现此事件序列,请记住 mouseup 事件可能会发送到与 mousemove 事件不同的 HTML 元素。为了解决这个问题,mouseup 处理程序通常应该绑定到 DOM 树中的一个高层元素,例如 <body>。
示例
当鼠标移动到黄色 div 上方时,显示鼠标坐标。坐标是相对于窗口的,在这种情况下是 iframe。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
|
演示
.trigger( "mousemove" )返回值: jQuery
描述: 触发元素上的“mousemove”事件。
-
添加版本: 1.0.trigger( "mousemove" )
-
"mousemove"类型: string字符串
"mousemove"。
-
请参阅 .on( "mousemove", ... ) 的说明。