在javascript/jquery中取消事件mousedown
我正在做一个拖放操作,当可拖动的对象通过我为屏幕设置的某些限制时,我想将其返回到其原始位置 我的问题是,如果onmousedown事件处于活动状态,则在调用onmousedup事件之前,对象不会返回到其原始位置在javascript/jquery中取消事件mousedown,javascript,jquery,mousedown,Javascript,Jquery,Mousedown,我正在做一个拖放操作,当可拖动的对象通过我为屏幕设置的某些限制时,我想将其返回到其原始位置 我的问题是,如果onmousedown事件处于活动状态,则在调用onmousedup事件之前,对象不会返回到其原始位置 可以在鼠标向下运行时取消或停止鼠标向下吗?听起来您应该使用onmousemove事件来查看是否已达到限制,但使用的是onmousedown,正如您所说,它在释放鼠标按钮之前不会触发。当您按下鼠标按钮时,只会触发一次。听起来您应该使用onmousemove事件来查看是否已达到限制,但使用的
可以在鼠标向下运行时取消或停止鼠标向下吗?听起来您应该使用onmousemove事件来查看是否已达到限制,但使用的是onmousedown,正如您所说,它在释放鼠标按钮之前不会触发。当您按下鼠标按钮时,只会触发一次。听起来您应该使用onmousemove事件来查看是否已达到限制,但使用的是onmousedown,正如您所说,它在释放鼠标按钮之前不会触发。只在按下鼠标按钮时触发一次,当满足特定条件时,可以清除mousemove事件:
function trackMouse(e) {
if (e.pageX > 200 || e.pageY > 200) {
// stop execution (event continues to run)
// alternatively, to detach this event:
$(window).off('mousemove', trackMouse);
} else {
$('#output').html(e.pageX +', '+ e.pageY);
}
}
$(window).on('mousemove', trackMouse);
您可以在满足特定条件时清除mousemove事件:
function trackMouse(e) {
if (e.pageX > 200 || e.pageY > 200) {
// stop execution (event continues to run)
// alternatively, to detach this event:
$(window).off('mousemove', trackMouse);
} else {
$('#output').html(e.pageX +', '+ e.pageY);
}
}
$(window).on('mousemove', trackMouse);
也许你会发现这个插件很有用。它允许您在拖动过程中取消拖动。从其文档中:
拖
每次鼠标单击“Dragnit”和“dragstart”后激发此事件
移动。处理程序可以返回false以停止拖动交互,并
直接进入“dragend”并防止任何“drop”事件。如果
拖动多个元素(从“draginit”中),将触发此事件
在每个元素上都是唯一的
也许你会发现这个插件很有用。它允许您在拖动过程中取消拖动。从其文档中:
拖
每次鼠标单击“Dragnit”和“dragstart”后激发此事件
移动。处理程序可以返回false以停止拖动交互,并
直接进入“dragend”并防止任何“drop”事件。如果
拖动多个元素(从“draginit”中),将触发此事件
在每个元素上都是唯一的
@Voitek Zylinski:你的解决方案是有效的,但我最终找到了这个比我更好的解决方案:
$(document).trigger("mouseup");
谢谢。@Voitek Zylinski:你的解决方案很有效,但我最终找到了这个对我来说更好的解决方案:
$(document).trigger("mouseup");
谢谢。onmousedown一旦按下按钮就会触发,一旦松开按钮就会触发onmousedup。我正在使用“.bind('drag',function(event)”从jquery查看对象是否达到限制。thanksonmousedown会在您按下按钮时触发,松开按钮后会触发onmouseup。我正在使用jquery中的“.bind('drag',function(event)”,查看对象是否达到限制。谢谢