1

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

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

4

2 回答 2

2

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

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

于 2012-04-18T17:42:50.380 回答
0

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

不管怎样,看看这个小提琴。它清理了你正在做的事情的代码,我认为它可以做你想做的事。

于 2012-04-18T17:51:24.053 回答