【问题标题】:Jquery Sortable, delete current Item by drag outJquery Sortable,通过拖出删除当前Item
【发布时间】:2011-03-23 13:45:29
【问题描述】:

我的问题: sortable 事件:当我在列表中拖动某些内容或对列表进行排序时触发。 但是我只想在拖出一个项目时启动该功能。

我的代码

        $(document).ready(function ust()
        {    
            $('#div1').sortable({
                out: function(event, ui) { $('#nfo').append('OUT<br />'); }
            });

        });

工作示例 http://jsfiddle.net/FrbW8/22/

【问题讨论】:

  • 嗯,这是一个 Jquery 错误吗? Coz ... Out -> 当可排序项目从连接列表移开时触发此事件。开始 -> 排序开始时触发此事件。停止 -> 排序停止时触发此事件。
  • Blair - 这是迄今为止我在 SO 上看到的最愚蠢的借口。

标签: javascript jquery jquery-ui-sortable


【解决方案1】:

使用 beforeStop 拦截项目并将其移除:

receive: function(e, ui) { sortableIn = 1; },
over: function(e, ui) { sortableIn = 1; },
out: function(e, ui) { sortableIn = 0; },
beforeStop: function(e, ui) {
   if (sortableIn == 0) { 
      ui.item.remove(); 
   } 
}

(我最初是在谷歌上找到这个的,但现在找不到链接了。所以,我很抱歉没有参考出处。)

【讨论】:

  • 看起来这会阻止项目的正常排序。如果我使用它并拖动项目进行排序,即使它永远不会移出控件,如果删除项目。
【解决方案2】:

这是 out 回调的默认行为。看到这个 jquery ui trac ticket

我真的不同意“逻辑”行为的概念。

"但是,请注意“out”回调 如果拖动仍然会触发 进入列表,然后释放鼠标 (但如果您不在列表中,则不是)。 这是合乎逻辑的行为并且发生 对于普通的 sortables 也是如此。”

【讨论】:

  • 是否有可能阻止火灾?例如,我添加了 sortstart 和 sortstop。 -> 如果 sortart:-> 中止:... 如果 sortstop:-> 中止:
  • 我想那会变得很乱。您可以尝试自己动手并更改 jquery ui src 以阻止这种“退出”行为。
  • 嘿redsquare,但是当我更改src 时,我必须在每次ui 更新后更改它。 :(对吧?
  • @Peter 是的,这是不利的一面——除非你提交一张带有更改的票,如果你认为它是错误的并且他们将它包含在下一个版本中
  • 还有没有别的办法?例如:销毁可排序 -> 使可拖动? ... Jquery 对我来说有点新,所以我不知道所有可能的方法。 :(
【解决方案3】:

其他解决方案似乎不适用于连接的可排序列表,因此我发布了我自己的解决方案,该解决方案非常适合我的情况。这利用了“droppable”插件在元素被丢弃到可排序列表之外时捕获“drop”事件。

$('#div1').sortable({
    ....
}).droppable({greedy: true})

$('body').droppable({
    drop: function ( event, ui ) {          
        ui.draggable.remove();
    }
});

这里是这种方法的一个 jsfiddle:http://jsfiddle.net/n3pjL/

【讨论】:

  • 这是我今天尝试的一种方法,但没有成功,因为我没有找到greedy 选项。感谢您的提示!
【解决方案4】:

我使用this.element.find('.ui-sortable-helper').length 来区分“排序事件”和“退出事件”。排序时,已排序的项目具有类 ui-sortable-helper。在您再次开始排序之前(至少在我的脚本中),在 drop 之后没有其他 ui-sortable-class 。希望对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 2016-05-07
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多