销毁jQuery Sortable / Droppable

时间:2012-04-18 17:34:30

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

所以我有一个问题,我希望能够在用户按下按钮时切换可排序插件的行为。 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');
        }
    });

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

2 个答案:

答案 0 :(得分:2)

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

然后你可以在点击时添加和删除这个类,这些元素将被排除或再次包含。

答案 1 :(得分:0)

你有正确的想法,但我有点困惑,为什么有“活跃”和“身份”的双重检查。你也应该使用$(this)而不是所有的e.target东西。

无论如何,请查看this fiddle。它清理了你正在做的事情的代码,我认为它可以做你想要的。