Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将jQuery Sortable用于动态添加的列表(不仅仅是动态项)_Jquery_Jquery Ui - Fatal编程技术网

将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加载页面)。请添加用于删除或任何操作的代码。这是否回答了您的问题?