如何在JQuery触发时创建一个事件,当鼠标停止和移动?每次mousedown mousemove只触发一次?
解决方法
更新:
所以,看起来如果你的鼠标不再在onmouseup绑定的元素上,它将不会看到鼠标向上的事件。有意义的是,当你停下来考虑它,但是当mousedown事件发生在元素上时,我们期望作为UI用户知道它什么时候被释放(即使它不在元素上)。
所以,为了解决这个问题,我们实际上是在文档级别上检测到mouseup。
var clicking = false; $('.selector').mousedown(function(){ clicking = true; $('.clickstatus').text('mousedown'); }); $(document).mouseup(function(){ clicking = false; $('.clickstatus').text('mouseup'); $('.movestatus').text('click released,no more move event'); }) $('.selector').mousemove(function(){ if(clicking == false) return; // Mouse click + moving logic here $('.movestatus').text('mouse moving'); });
我在jsbin上尝试过,似乎工作。在这里查看:http://jsbin.com/icuso.要编辑它(请参阅JS和HTML),只需在URL的末尾标记“编辑”即可。 http://jsbin.com/icuso/edit。