编程语言
首页 > 编程语言> > javascript-区分单击和双击

javascript-区分单击和双击

作者:互联网

我有以下代码段用于区分点击和双击:

observeSingleAndDoubleClick: function (element, singleClickHandler, doubleClickHandler, timeout) {
    var clicks;
    $(element).observe('click', function (event) {
        ++clicks;
        if (clicks === 1) {
            var timeoutCallback = function (event) {
                if (clicks === 1) {
                    singleClickHandler.call(this, event);
                } else {
                    doubleClickHandler.call(this, event);
                }
                clicks = 0;
            };
            timeoutCallback.bind(this).delay(timeout / 1000);
        }
    }.bind(this));
}

问题:调用延迟回调时,该事件不再有效.虽然它可以在Firefox中使用,但不能在IE8中使用.传递给单击处理程序的事件对象是“死的”,因为事件本身已经传递.

任何人都有如何解决此问题的建议?

解决方法:

我知道OpenLayers项目有类似的目标.查看此文件中的第210行:OpenLayers.Handler.Click sourcecode.

我不知道如何在Prototype框架中使用它,但是我希望它可以帮助您找到正确的方法:)

另一件事:使用mouseUp事件而不是click会更好吗?

标签:javascript,prototypejs
来源: https://codeday.me/bug/20191102/1995050.html