我如何在jQuery中定义它是定期点击相同的元素还是双击?
例如,我们有这样的元素:
<div id="here">Click me once or twice</div>
我们需要在定期点击和双击后执行不同的操作。
我试过这样的事情
$("#here").dblclick(function(){
alert('Double click');
});
$("#here").click(function(){
alert('Click');
});
但是,当然,它不起作用,每次只能“点击”。
然后,有些人告诉我这个:
var clickCounter = new Array();
$('#here').click(function () {
clickCounter.push('true');
setTimeout('clickCounter.pop()', 50);
if (clickCounter.length > 2) {
//double click
clickCounter = new Array(); //drop array
} else {
//click
clickCounter = new Array(); //drop array !bug ovethere
}
});
这里我们尝试设置点击之间的间隔,然后跟踪两个连续的事件,但这有一个问题..它也不起作用。
那么,有人知道怎么做吗?或者有人可以分享材料的链接,在那里我可以阅读它吗?
答案 0 :(得分:4)
来自QuirksMode:
<强>双击自动强>
很少使用dblclick事件。 即使你使用它,你应该是 确保永远不会同时注册onclick和ondblclick事件处理程序 在相同的HTML元素上。找出用户实际做了什么 如果您同时注册两者,几乎是不可能的。
毕竟,当用户双击元素时单击一下事件 在dblclick之前发生。此外,在Netscape第二次点击 事件也在dblclick之前单独处理。最后,提醒 这里也很危险。
因此,请将您的点击和dblclicks分开以避免 并发症。
(强调我的)
答案 1 :(得分:0)
你在问题中所做的是,应该如何做。
$(".test").click(function() {
$("body").append("you clicked me<br />");
});
$(".test").dblclick(function() {
$("body").append("you doubleclicked me<br />");
});
因为,您想要检测单独的双击。这有一个git project。
$("button").single_double_click(function () {
alert("Try double-clicking me!")
}, function () {
alert("Double click detected, I'm hiding")
$(this).hide()
})
它会添加事件以检测单次双击。
希望它能帮到你。