jquery ui可拖动阻止单击外部
我有一个可拖动的div,它在y轴上的移动是有限的。 我的代码: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外单击的一些想法? 感谢您的帮助这缺少了一些关于您到底想做什么的信息,因此在阅
$(".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();
});