嗨,我正在为我的jquery ajax引擎的点击双击事件处理程序工作。其原理是,您可以单击或双击一个按钮。这是我自己写的,但我不明白为什么它不起作用。
这是代码:
$('body').on('click', '.double-click', function() {
var that = this;
var dblclick = $(that).data('clicks');
if(!dblclick){
dblclick = 0;
}
dblclick = dblclick + 1;
$(that).data('clicks', dblclick);
dblclick = $(that).data('clicks');
console.log('click - ' + dblclick);
if(dblclick > 1){
$(this).data('clicks', 0);
//ajaxloader(this, 1);
alert('dubbel-klik');
console.log('dubbelcik event');
}
setTimeout(function() {
if(dblclick == 1){
$(that).data('clicks', 0);
//ajaxloader(this, 0);
alert('klik');
console.log('single click event');
}
}, 400);
});
它可能看起来有点过于复杂,但那是因为我尝试了一些东西。我遇到的问题是,当我双击双击时,也会执行单个点击。这是怎么可能的,当我重置$(this).data('clicks', 0);
。然后计数器必须为0,超时中的if语句必须为false。
有人知道出了什么问题!?
O是的,在这里看到一个工作演示:单击click en dubbelclick按钮
你把事情弄得太复杂了。jQuery内置了所有这些:
$('body').on('click', function(){
alert("single click")
});
$('body').on('dblclick', function(){
alert("double click");
});
这也会点击单个元素:你可能想检查一下这个线程,看看你能做些什么来防止:Javascript与jQuery:点击并双击同一元素,不同的效果,一个禁用另一个