在可拖动事件期间显示和隐藏快照对象时,为什么可拖动元素不响应快照选项?

时间:2014-08-14 18:53:16

标签: javascript jquery html css jquery-ui

不知道标题是否足够清晰,但我想让一个可拖动的元素与第一个隐藏的几个指南对齐,当我开始拖动元素时,它们会显示出来......但是元素并没有与它们对齐......它就像是,它并没有识别出它......为什么会这样?

我做了这个小提琴

http://jsfiddle.net/cLs7mq4p/

代码非常简单

$(".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>

1 个答案:

答案 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选项不是   被保存在可拖动的小部件重写中。这种行为也是   以前没有人要求过的东西。

希望它也适用于其他人:)