我有一个id为id的按钮"my_id"。我将此元素附加了两个jQuery事件
"my_id"
1。
$("#my_id").click(function() { alert('single click'); });
2。
$("#my_id").dblclick(function() { alert('double click'); });
但是每次它给我 single click
single click
您需要使用超时来检查第一次点击后是否还有另一次点击。
这是窍门:
// Author: Jacek Becela // Source: http://gist.github.com/399624 // License: MIT jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) { return this.each(function(){ var clicks = 0, self = this; jQuery(this).click(function(event){ clicks++; if (clicks == 1) { setTimeout(function(){ if(clicks == 1) { single_click_callback.call(self, event); } else { double_click_callback.call(self, event); } clicks = 0; }, timeout || 300); } }); }); }
用法:
$("button").single_double_click(function () { alert("Try double-clicking me!") }, function () { alert("Double click detected, I'm hiding") $(this).hide() }) <button>Click Me!</button>