.dblclick()


.dblclick( handler(eventObject) )返回: jQuery

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

  • 添加的版本: 1.0.dblclick( handler(eventObject) )

    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • 添加的版本: 1.4.3.dblclick( [eventData ], handler(eventObject) )

    • eventData
      类型: Anything
      一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • 添加的版本: 1.0.dblclick()

    • 这个方法不接受任何参数

这个函数的前两个用法是 .bind('dblclick', handler) 的快捷方式,第3个不带参数的用法是 .trigger('dblclick') 的快捷方式。一个元素被双击时将触发 dblclick 事件。任何HTML元素都可以收到此事件。请看下面的HTML:

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

这个事件处理器可以绑定到任何 <div>:

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

现在,如果我们双击这个元素,警报显示:

Handler for .dblclick() called.

应用不带参数的.dblclick(),我们可以手动触发这个事件:

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

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

dblclick事件只有在满足以下条件的情况下才能被触发:

  • 鼠标指针在元素里面时点击。
  • 鼠标指针在元素里面时释放。
  • 鼠标指针在元素里面时再次点击,点击间隔时间,是系统而定。
  • 鼠标指针在元素里面时再次释放。

在同一元素上同时绑定 clickdblclick 事件是不可取的。各个浏览器事件触发的顺序是不同的,一些浏览器在dblclick之前接受两个 click 事件 ,而和其它浏览器只接受一个 click 事件。用户往往可通过不同的操作系统和浏览器配置双击灵敏度(两次点击之间的最大时间被检测为双击)。

Additional Notes(其他注意事项):

  • .dblclick()方法只是作为.on( "dblclick", handler )的一个速记写法,移除该事件可以使用.off( "dblclick" )

例子:

Example: 在段落上双击时,显示 "Hello World!" 提示框:

1
$("p").dblclick( function () { alert("Hello World!"); });

Example: 双击时改变背景色。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html>
<head>
<style>
div { background:blue;
color:white;
height:100px;
width:150px;
}
div.dbl { background:yellow;color:black; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div></div><span>Double click the block</span>
<script>
var divdbl = $("div:first");
divdbl.dblclick(function () {
divdbl.toggleClass('dbl');
});
</script>
</body>
</html>

Demo: