[英]detect move of mouse while clicked and detect doubleclick
目前,我已经针对人单击画布以及人单击并拖动东西实施了不同的操作。 我是通过将mousedown事件绑定到画布来完成此操作的,在该函数中,拖动或mouseup之间存在区别。 这很好用,但是当我也想支持双击元素时我遇到了一个问题。
正常的实现方式是这样的:
$(canvas).click(function1);
$(canvas).dblclick(function2);
但是我没有采用这种方式,因为我必须检查鼠标是否移动(即拖动)。 这是我当前的实现:
var handler = {
clicked:function(e){
...
$(canvas).bind('mousemove', handler.dragged);
$(window).bind('mouseup', handler.dropped);
},
dragged:function(e){
...
},
dropped:function(e){
function loop(ctr){
if (ctr < 50) {
setTimeout(function(){loop(ctr+1)}, 2);
} else {
$(canvas).mousedown(handler.clicked);
handler.singleClick(e);
}
}
$(canvas).mousedown(handler.doubleclicked);
loop(0);
},
doubleClick: function(e){
...
},
singleClick: function(e){
...
}
}
$(canvas).mousedown(handler.clicked);
我试图通过实现放置功能来结合这两件事(对拖动和双击的识别),该功能需要等待一段时间才能听到另一声点击,如果在这段时间内没有发生,它将转到单点击功能。 目前尚无法识别第二次点击。
我认为有更好的方法可以做到这一点? 提前致谢
您可能要看一下:
http://threedubmedia.com/code/event/drag
除了.drag()
.click()
和.dblclick()
之外,它还为您提供了其他功能.dblclick()
。
还有一个下降版本:
http://threedubmedia.com/code/event/drop
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.