【问题标题】:Destroying jQuery Sortable/Droppable销毁 jQuery 可排序/可删除
【发布时间】:2012-04-18 17:34:30
【问题描述】:

所以我有一个问题,我希望能够在用户按下按钮时切换可排序插件的行为。 IE,有排序模式和查看模式。我试图做这样的事情:

function enterEdit(){
    $('#someDiv').sortable();
} 

function enterView() {
    $('#someDiv').sortable('destroy');
}

$('#editToggle').on('click', '.toggle-button', function(e){
        var $target = $(e.target);
        if(!$target.hasClass('active')) {
            if($target[0].id == 'edit'){
                enterEdit();                    
            } else {
                enterView();
            }
            $('#editToggle').children().removeClass('active');
            $target.addClass('active');
        }
    });

这就是正在发生的事情。当我第一次初始化它时它起作用,然后破坏也起作用。问题是,当我再次单击编辑时,可排序不会重新初始化。有没有人曾经尝试过这个,或者有更好的解决方案?谢谢!

【问题讨论】:

    标签: javascript jquery css jquery-plugins jquery-ui-sortable


    【解决方案1】:

    如果你给每个应该排序的元素一个特定的类,然后用$('#someDiv').sortable({items: li.yourClass});进行初始化

    然后您可以在单击时添加和删除此类,元素将被排除或再次包含。

    【讨论】:

    • 啊,让我试一试。
    • 好吧,这适用于可排序的,但现在我需要对可拖动的做同样的事情。我尝试添加“项目”选项,但这与可排序的效果不同。
    • 这成功了。我向指定的句柄添加了一个可抓取类,并将其设置为您切换的类。谢谢!
    【解决方案2】:

    您的想法是对的,但我有点困惑,为什么要对“活动”和“ID”进行双重检查。您还应该使用 $(this) 而不是所有 e.target 的东西。

    无论如何,请查看this fiddle。它清理了您正在执行的代码,我认为它可以执行您想要的操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      相关资源
      最近更新 更多