我正在尝试找出从 JQuery UI 可排序列表中删除项目的正确方法。我创建了一个 JSfiddle 来说明我的问题。
基本上,我有几个围绕 JQuery UI 可排序小部件的回调,我希望在我从小部件中删除一个元素后立即执行这些回调。这样做的正确方法是什么?因为 "$.remove" 和 "$.detach" 似乎都有效。
编辑 1:我不是在寻找关于我的问题的修补程序,而是更多关于 JQuery UI 可排序列表如何工作的解释,而下面的答案清楚地解决了这个问题。我不认为这是一种干净的方式。我认为 JQuery UI Sortable 应该知道,当您从列表中删除两个元素之间的元素时,您应该需要重新排序
如果您在下面记下,当我在元素上调用 remove 时,该函数不会被执行。
$(document).ready(function(){
$('ul').sortable({
stop: function(event, ui) {
updatePosition();
}
});
$('.remove').on('click', function(e){
$(".delete").remove();
});
});
function updatePosition(){
$('ul li').each(function(i){
$(this).html(i + 1);
});
}