Javascript 单击会干扰双击。如何解决这个问题?
我有一个问题,我的单击事件不断干扰我的双击事件,因此即使我双击,也会调用单击事件 以下是我在上找到的解决方案之前的代码:Javascript 单击会干扰双击。如何解决这个问题?,javascript,jquery,settimeout,double-click,Javascript,Jquery,Settimeout,Double Click,我有一个问题,我的单击事件不断干扰我的双击事件,因此即使我双击,也会调用单击事件 以下是我在上找到的解决方案之前的代码: grid.bind('change', function() { SearchPSelected(); }); $('#PGrid').delegate('tbody>tr', 'dblclick', function(e) { SearchPSelected(); GotoNextView(); }); 以下是我遵循解决方案后的代码: gr
grid.bind('change', function() {
SearchPSelected();
});
$('#PGrid').delegate('tbody>tr', 'dblclick', function(e) {
SearchPSelected();
GotoNextView();
});
以下是我遵循解决方案后的代码:
grid = $('#PGrid').data('kendoGrid');
var DELAY = 700,
clicks = 0,
timer = null;
grid.on("click", function(e) {
clicks++; //count clicks
if (clicks === 1) {
timer = setTimeout(function() {
grid.bind('change', function() {
SearchPSelected();
}); //perform single-click action
clicks = 0; //after action performed, reset counter
}, DELAY);
} else {
clearTimeout(timer); //prevent single-click action
$('#PGrid').delegate('tbody>tr', 'dblclick', function(e) {
SearchPSelected();
GotoNextView();
}); //perform double-click action
clicks = 0; //after action performed, reset counter
}
})
.on("dblclick", function(e) {
e.preventDefault(); //cancel system double-click event
});
对于尝试的解决方案,没有调用任何东西(通过firebug的检查),我不知道为什么?我对js(不是我选择的语言)还是比较陌生的,所以我可能遗漏了什么 我解决了我的问题。下面是修复程序。我必须在上面的解决方案中删除click和dblclick方法的冗余
var DELAY = 700,
clicks = 0,
timer = null;
$('#PGrid').delegate('tbody>tr','click', function (e) {
clicks++; //count clicks
if (clicks === 1) {
timer = setTimeout(function () {
SearchPSelected();
clicks = 0; //after action performed, reset counter
}, DELAY);
} else {
clearTimeout(timer); //prevent single-click action
SearchSelected();
GotoNextView();
clicks = 0; //after action performed, reset counter
}
});
因为click并不关心是否有双击。在同一个元素上使用“click”和“doubleclick”右键在web用户界面中效果不太好。你是什么意思?所以我不能让一个元素在单击和双击时有不同的动作?我尝试了一个解决方案,但对我无效。你可以同时拥有这两个,但两个事件都会触发。这就是它的工作原理。