jquery ui可拖动阻止单击外部

jquery ui可拖动阻止单击外部,jquery,jquery-ui,jquery-ui-draggable,Jquery,Jquery Ui,Jquery Ui Draggable,我有一个可拖动的div,它在y轴上的移动是有限的。 我的代码: $(".drag").draggable({ axis: "y" }); 这个很好用。 但是,这个div与其他具有click事件的div比较接近。 在y轴上,光标随可拖动对象移动,因此一切正常。 但在x轴上,光标不限于元素。因此,如果光标离开了可拖动范围,当我释放按钮时,其他元素上的事件被调用。 当可拖动功能运行时,限制鼠标在x轴上的移动或防止在该div外单击的一些想法? 感谢您的帮助这缺少了一些关于您到底想做什么的信息,因此在阅

我有一个可拖动的div,它在y轴上的移动是有限的。 我的代码:

$(".drag").draggable({ axis: "y" });
这个很好用。 但是,这个div与其他具有click事件的div比较接近。 在y轴上,光标随可拖动对象移动,因此一切正常。 但在x轴上,光标不限于元素。因此,如果光标离开了可拖动范围,当我释放按钮时,其他元素上的事件被调用。 当可拖动功能运行时,限制鼠标在x轴上的移动或防止在该div外单击的一些想法?
感谢您的帮助

这缺少了一些关于您到底想做什么的信息,因此在阅读您描述的内容后,我猜您希望在完成拖动时防止事件发生,因此可以在开始或结束时进行,我认为您希望在最后进行。我试图重现你的问题,有两个div,一个在Y轴上,另一个在X轴上,如下所示: JS

JS

但是,在发布一个事件时,没有在另一个事件的基础上生成双重事件,而另一个事件也具有可拖动功能,并且还具有简单的单击事件

你能自己摆弄一下,试着重现这个问题吗?另一方面,您可以尝试在此事件解决方案中寻找类似的解决方案:

链接到JS fiddle:

这缺少一些关于您到底想做什么的信息,因此在阅读您描述的内容后,我猜您希望在完成拖动时防止事件发生,因此可以在开始或结束时进行,我认为您希望在最后进行。我试图重现你的问题,有两个div,一个在Y轴上,另一个在X轴上,如下所示: JS

JS

但是,在发布一个事件时,没有在另一个事件的基础上生成双重事件,而另一个事件也具有可拖动功能,并且还具有简单的单击事件

你能自己摆弄一下,试着重现这个问题吗?另一方面,您可以尝试在此事件解决方案中寻找类似的解决方案:

链接到JS fiddle: 谢谢你的帮助。 你的回答让我思考这个问题。 事实上,这不是因为点击事件,而是因为这个附近的区域是可拖放的,所以当我的光标在上面时,当我释放鼠标按钮时,因为我被点击在一个可拖放的区域上,显示了可拖放的对话框。 若要禁用此效果,我将鼠标悬停在可拖放区域的可拖放选项上,使其不打开对话框(如果可拖放不是所希望的)。 谢谢你

谢谢你的帮助。 你的回答让我思考这个问题。 事实上,这不是因为点击事件,而是因为这个附近的区域是可拖放的,所以当我的光标在上面时,当我释放鼠标按钮时,因为我被点击在一个可拖放的区域上,显示了可拖放的对话框。 若要禁用此效果,我将鼠标悬停在可拖放区域的可拖放选项上,使其不打开对话框(如果可拖放不是所希望的)。 多谢各位

<div class="dragYAxis"></div>
<div class="dragXAxis"></div>
body {
  background: #20262E;
  padding: 20px;
}

.dragXAxis{
  height: 20px;
  width: 20px;
  background: grey;
}

.dragYAxis{
  height: 20px;
  width: 20px;
  background: white;
}
/* 
Try this solution for your problem and see if it helps too:
$('.dragYAxis').draggable({
        axis: 'y',
        start: function(event, ui) {
            ui.helper.bind("click.prevent",
                function(event) { event.preventDefault(); });
        },
        stop: function(event, ui) {
            setTimeout(function(){ui.helper.unbind("click.prevent");}, 300);
        } 
});*/

$(".dragYAxis").draggable({axis: 'y'});

$(".dragXAxis").draggable({axis: 'x'});

$(".dragYAxis").click(function(){
  alert();
});
$(".dragXAxis").click(function(){
  alert();
});