【问题标题】:Prevent toggle occuring before droppable animation finishes防止在可放置动画完成之前发生切换
【发布时间】:2013-01-27 16:41:59
【问题描述】:

我有什么:

使用 jQuery UI,我将一个 div 从一个 div 拖放到另一个 div。

掉落事件触发:

  1. 一种动画,可将放置的 div 缓和/捕捉到位。
  2. 另一个 div 的切换(显示/隐藏)。

问题:

切换发生在动画完成之前。我需要在动画完成之后进行切换。

实例+代码:

http://jsfiddle.net/dominornovus/3Hq3q/2/

我尝试过的:

我没有成功尝试使用动画选择器:

$(":animated").promise().done(function() {
//code here
}

我的问题:

如何防止在可放置动画之前发生切换。

【问题讨论】:

    标签: jquery jquery-ui jquery-animate jquery-ui-droppable


    【解决方案1】:

    使用animate()中的回调:

    $('.drop').droppable({
        tolerance: 'intersect',
        drop: function(event, ui) {
            var drop_p = $(this).offset();
            var drag_p = ui.draggable.offset();
            var left_end = drop_p.left - drag_p.left + 1;
            var top_end = drop_p.top - drag_p.top + 1;
            ui.draggable.animate({
                top: '+=' + top_end,
                left: '+=' + left_end
            }, function() {  //callback
                $(".somediv").toggle();
            });
        }
    });
    

    FIDDLE

    【讨论】:

    • 非常感谢工作代码(以及 2 分钟响应时间 +1)。按照您的指示,我已经阅读了动画回调 (api.jquery.com/animate)。最方便。
    • 是的,回调在制作动画时非常有用,不需要复杂的函数或承诺。不客气!
    猜你喜欢
    • 2016-11-29
    • 2012-06-09
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多