Javascript 如何阻止mousemove?
我已经创建了一个JS函数来左右拖动一个项目。单击按钮后,我需要停止拖动。如何阻止mousemove 我试过Javascript 如何阻止mousemove?,javascript,jquery,draggable,drag,Javascript,Jquery,Draggable,Drag,我已经创建了一个JS函数来左右拖动一个项目。单击按钮后,我需要停止拖动。如何阻止mousemove 我试过$('.draggable').off('mousemove')和e.stopPropagation(),但对我来说都不管用 一个JSFIDLE胜过千言万语,请看这里的问题:在您的JSFIDLE中试试这个: $('#stop').on('click',function(){ //$('.draggable').off('mousemove'); $('.thing').off();
$('.draggable').off('mousemove')代码>和e.stopPropagation()代码>,但对我来说都不管用
一个JSFIDLE胜过千言万语,请看这里的问题:在您的JSFIDLE中试试这个:
$('#stop').on('click',function(){
//$('.draggable').off('mousemove');
$('.thing').off(); // Removes all event handlers.
});
在您的JSFIDLE中尝试以下操作:
$('#stop').on('click',function(){
//$('.draggable').off('mousemove');
$('.thing').off(); // Removes all event handlers.
});
除了mouseup
,还可以使用mouseleave
事件 除了mouseup
之外,还可以使用mouseleave
事件 只需删除“draggable”类即可
$('.draggable').removeClass('draggable')代码>
只需删除“可拖动”类即可
$('.draggable').removeClass('draggable')代码>
你的问题是你在做
$('.draggable').parents().on('mousemove', function(e) { ... });
及
off
调用与on
调用不在同一元素上。换成
$('.draggable').parents().off('mousemove');
它是有效的
…尽管您确实应该存储处理程序并显式删除它。您的问题在于
$('.draggable').parents().on('mousemove', function(e) { ... });
及
off
调用与on
调用不在同一元素上。换成
$('.draggable').parents().off('mousemove');
它是有效的
…虽然您确实应该存储处理程序并显式删除它。它似乎不会阻止长方体移动。您是否编辑了代码,然后在尝试移动长方体之前单击停止链接?当我编辑你的代码时,它对我有效。我不知道为什么jQuery不允许运行此代码:$('.draggable').off('mousemove')代码>也不是此代码$('.thing').off('mousemove')代码>当他们的API文档显示这样做完全合法时。(请参阅此处的附加说明:)这可能是他们库中的一个错误。它似乎无法阻止长方体移动。在尝试移动长方体之前,您是否编辑了代码并单击了“停止”链接?当我编辑你的代码时,它对我有效。我不知道为什么jQuery不允许运行此代码:$('.draggable').off('mousemove')代码>也不是此代码$('.thing').off('mousemove')代码>当他们的API文档显示这样做完全合法时。(请参阅此处的附加说明:)这可能是他们库中的一个bug。嗨,奥斯卡,对不起,这很难描述。我想让盒子在鼠标移动的过程中继续移动。我只希望它在点击按钮后停止。啊,我明白了。也许你想要以下的东西:嗨,奥斯卡,对不起,这很难描述。我想让盒子在鼠标移动的过程中继续移动。我只希望它在点击按钮后停止。啊,我明白了。也许你想要以下的东西:+1,因为你是完全正确的。我接受了另一个答案,因为它回答了我的具体问题。我接受了另一个答案,因为它回答了我的具体问题。