[英]cancel event mousedown in javascript / jquery
我正在執行拖放操作,當可拖動對象超過我已設置到屏幕的某些限制時,我想將其返回到其原始位置。
我的問題是,如果onmousedown事件處於活動狀態,則在調用onmouseup事件之前,該對象不會返回其原始位置。
運行時是否可以取消或停止mousedown?
滿足特定條件時,可以清除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);
聽起來您應該使用onmousemove-event來查看您是否已達到限制,但正在使用onmousedown,
正如您所說的,在釋放鼠標按鈕之前不會觸發。
按下鼠標按鈕時僅觸發一次
也許您會發現此jquery.event.drag插件有用。 它允許您取消正在進行的拖動。 從其文檔:
拖動
每次鼠標移動時,都會在“ draginit”和“ dragstart”之后觸發此事件。 處理程序可以返回false來停止拖動交互,並直接進入“拖動”狀態,還可以防止任何“放置”事件。 如果拖動多個元素(從“ draginit”拖動),則此事件將在每個元素上唯一觸發。
@Voitek Zylinski:您的解決方案有效,但我最終發現此解決方案對我而言更好:
$(document).trigger("mouseup");
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.