我不得不使用mousedown而不是使用draggable start,因为jQuery捕捉拖动事件... jQuery UI支持给了我这个有效的解决方案,但是如果你单击红色块,只需点击一下......你可以看到黑色指南出现,即使我不喜欢它。
这里是jQuery UI团队针对我的问题修复的fiddle。
有没有什么方法可以让它发挥作用,以便单击不会仅在按住点击时显示黑线?
这是简单的代码:
$(".block").draggable({
snap: ".guide",
snapTolerance: 10,
stop: function( event, ui) {
$(".h-line").css("display", "none");
}
}).on( "mousedown", function(event) {
$(".h-line").css("display", "block");
});
也许通过设置setTimeout?但这是正确的解决方案吗?
答案 0 :(得分:0)
在你简单点击'.block'的情况下,你在_mousedown上显示'.h-line',但不提高 dragstart ,所以 dragstop don'提高。
为了快速修复,您可以使用 mousemove 和 mouseup 这样的事件
$(".block").draggable({
snap: ".guide",
snapTolerance: 10
}).on( "mousedown", function() {
this.t = true;
}).on( "mouseup",function(){
this.t = false;
$(".h-line").css("display", "none");
}).on("mousemove", function(){
if(this.t && $(".h-line:visible").length === 0)
$(".h-line").css("display", "block");
});