首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击干扰双击。如何解决这个问题?

单击干扰双击。如何解决这个问题?
EN

Stack Overflow用户
提问于 2014-12-30 22:10:09
回答 1查看 1K关注 0票数 0

我遇到了一个问题,即我的单次单击事件总是干扰我的双击事件,因此即使我双击,也会调用该单击事件。

下面是我在上面找到的解决方案之前的代码:

代码语言:javascript
复制
grid.bind('change', function() {
    SearchPSelected();
});

$('#PGrid').delegate('tbody>tr', 'dblclick', function(e) {
    SearchPSelected();
    GotoNextView();
});

下面是我遵循解决方案之后的代码:

代码语言:javascript
复制
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还比较陌生(不是我选择的语言),所以我可能遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-31 16:01:17

我解决了我的问题。下面是修复方法。我不得不删除上面解决方案中的click和dblclick方法的冗余。

代码语言:javascript
复制
        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
            }
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27713304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档