不知道标题是否足够清晰,但我想让一个可拖动的元素与第一个隐藏的几个指南对齐,当我开始拖动元素时,它们会显示出来......但是元素并没有与它们对齐......它就像是,它并没有识别出它......为什么会这样?
我做了这个小提琴
代码非常简单
$(".block").draggable(
{
snap: ".guide",
snapTolerance: 10,
//grid: [10,10],
start: function(event, ui) {
$(".guide").show();
},
stop: function( event, ui) {
$(".guide").hide();
}
});
HTML就是这样;
<div class="h-line guide" style="top: 100px"></div>
<div class="h-line guide" style="top: 400px"></div>
<div class="v-line guide" style="left: 80px"></div>
<div class="v-line guide" style="left: 400px"></div>
<div class="block"></div>
答案 0 :(得分:0)
我得到了Jquery UI的帮助,因为它是一个bug,之前从未有人问过这个功能......所以这是让它工作的另一种选择:)
使用on mousedown事件。
$(".block").draggable({
snap: ".guide",
snapTolerance: 10,
stop: function( event, ui) {
$(".h-line").css("display", "none");
}
}).on( "mousedown", function() {
$(".h-line").css("display", "block");
});
这是jQUery UI支持修复的JSFiddle及其发表的评论:
您好msqar,感谢您抽出宝贵时间为jQuery UI做出贡献 通过使用mousedown侦听器可以获得您正在寻找的行为 以便在draggable的snap逻辑运行之前显示/隐藏: http://jsfiddle.net/tj_vantoll/cLs7mq4p/2/。这不是我们的事 打算在库中添加支持,因为snap选项不是 被保存在可拖动的小部件重写中。这种行为也是 以前没有人要求过的东西。
希望它也适用于其他人:)