【问题标题】:jQuery UI Sortable + Droppable both trigger when dropped on droppablejQuery UI Sortable + Droppable 在 droppable 上放置时都会触发
【发布时间】:2013-01-20 05:45:03
【问题描述】:

我有一个可排序且排序良好的元素列表。我还有一个位于可排序列表之外的可放置对象。当我在 droppable 上放置项目时,它旨在执行复制操作,这意味着在此操作期间排序是不可取的。

不幸的是,将 sortable 拖动到外部 droppable 会导致 sortable.update 触发。如果将可排序元素拖到给定元素之外,有没有办法忽略所有可排序的拖放事件?

我已经浏览了所有相关的可排序事件,但我似乎找不到任何对可排序元素的引用,以便查看它们是否有共同的父级。

这里有一个小提琴来演示:http://jsfiddle.net/6yhbG/

将可排序的 1/2 拖动到可放置的对象会导致 sortable.sort 触发。

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable jquery-ui-droppable


    【解决方案1】:

    好的,终于明白了:sortable('cancel') 需要从 sortable.stop 调用,我只是向可排序对象添加一个类,以便它知道是否取消自己:

    $('div').droppable({
        drop: function(e, ui) {
            ui.draggable.parent().addClass('dropped');
        }
    });
    
    $('ul').sortable({
        stop: function(){
            if ($(this).hasClass('dropped')){
                $(this).sortable('cancel');
                $(this).removeClass('dropped');
            }           
        }
    });
    

    我的更新示例位于:http://jsfiddle.net/6yhbG/1/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-23
      • 2012-09-06
      • 1970-01-01
      • 2013-11-12
      • 2012-01-14
      • 2011-10-29
      • 2011-07-26
      • 2011-09-11
      相关资源
      最近更新 更多