我有以下代码片段,用于区分单击和双击:
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中却不能。传递给点击处理程序的事件对象是“失效”的,因为事件本身已经过去了。
有人有解决这个问题的建议吗?