这缺少一些关于你到底想要做什么的信息,所以在阅读了你描述的内容之后,我猜你想在完成拖动时阻止该事件,所以这可以在开始或结束时,我认为你想要最后的那个。我试图重现您的问题,其中有两个 div,一个在 Y 轴上,另一个在 X 轴上,如下所示:
JS
<div class="dragYAxis"></div>
<div class="dragXAxis"></div>
CSS
body {
background: #20262E;
padding: 20px;
}
.dragXAxis{
height: 20px;
width: 20px;
background: grey;
}
.dragYAxis{
height: 20px;
width: 20px;
background: white;
}
JS
/*
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();
});
但是在一个事件之上释放一个事件并没有产生双重事件,另一个事件也有可拖动的,也有一个简单的点击事件。
您可以自己动手尝试重现问题吗?否则,您可以尝试在这些人阻止事件解决方案中寻找一些类似的解决方案:
Preventing click event with jQuery drag and drop
链接到 JS 小提琴:
https://jsfiddle.net/kn30mLpd/