所以我有一个问题,我希望能够在用户按下按钮时切换可排序插件的行为。 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不会重新初始化。有没有人曾经尝试过这个,或者有更好的解决方案?谢谢!
答案 0 :(得分:2)
如果你给每个应该可以对特定类进行排序的元素然后用$('#someDiv').sortable({items: li.yourClass});
初始化
然后你可以在点击时添加和删除这个类,这些元素将被排除或再次包含。
答案 1 :(得分:0)
你有正确的想法,但我有点困惑,为什么有“活跃”和“身份”的双重检查。你也应该使用$(this)而不是所有的e.target东西。
无论如何,请查看this fiddle。它清理了你正在做的事情的代码,我认为它可以做你想要的。