将jQuery Sortable用于动态添加的列表(不仅仅是动态项)
我可以使用动态删除和添加的列表进行排序吗?我不是说只有项目是动态的,而是完整的列表本身 我是否应该在每次添加列表时都运行它?有没有办法避免这种情况将jQuery Sortable用于动态添加的列表(不仅仅是动态项),jquery,jquery-ui,Jquery,Jquery Ui,我可以使用动态删除和添加的列表进行排序吗?我不是说只有项目是动态的,而是完整的列表本身 我是否应该在每次添加列表时都运行它?有没有办法避免这种情况 $(function() { $( "#my_menu_list").sortable({ stop: completed_sorting, items: 'li', delay: 150, distance: 5, }).disableSelection(); }); 我已经看到
$(function() {
$( "#my_menu_list").sortable({
stop: completed_sorting,
items: 'li',
delay: 150,
distance: 5,
}).disableSelection();
});
我已经看到了关于在列表中动态添加元素的答案。这不是我的问题。添加动态列表后,使用下面的代码将可排序插件应用于动态列表
$("#my_menu_list").sortable("refresh");
上述方法的目的如下
刷新可排序项目。触发所有可排序项目的重新加载,导致识别新项目
$(函数(){
$(文档).find(#sortable”).sortable({
取消:“.unsortable”
});
$(文档).find(#sortable”).disableSelection();
$(“#可排序”)。在(“sortstart”上,函数(事件,ui){
$(“#响应”).empty();
$(文档).find(#sortable”).sortable(“刷新”);
jQuery(this).sortable(“refreshPositions”).children();
$(“#可排序”).sortable(“toArray”).map(函数(项,索引){
var text=“位置:“+索引+”-“+项目+”
”;
$(“#答复”)。追加(文本);
})
});
$(文档)。在(“更改”、“输入[type='checkbox']”上,函数(事件){
var id=$(this.nexist('li').attr('id');
如果($(this).is(“:checked”))
{
控制台日志(“控制台日志”,id);
$(document).find(“#”+id).removeClass('unsortable');
$(文档).find(#sortable”).trigger(“sortstart”);
}
其他的
{
var clone=$(document.find('li#'+id).html();
$(文档).find(“li#”+id).remove();
var li=$(“”);
li.attr(“类”、“ui状态默认值”);
li.attr(“id”,id);
追加(克隆);
$(“#可排序”)。追加(li);
$(文档).find(“#”+id).addClass('unsortable');
$(document.find(“input[name=”“+id+””]).prop('checked',false);
$(文档).find(#sortable”).trigger(“sortstart”);
$(文档).find(#sortable”).sortable({
取消:“.unsortable”
});
}
});
});代码>
.ui可拖动,.ui可拖放{
背景位置:顶部;
}
李{
光标:移动;
}
.不耐烦{
光标:无下降;
}
第1项
第2项
第3项
第4项
第5项
第6项
第7项
我得到一个错误:在初始化之前无法调用sortable上的方法;尝试调用方法“refresh”,首先保留初始化代码,并在添加新元素后应用上述代码。我没有添加新元素。整个列表(包括UL)被删除并带回(ajax加载页面)。请添加用于删除或任何操作的代码。这是否回答了您的问题?