在向DOM中动态添加新的可排序元素时遇到问题。
我按以下方式设置可排序:
$(".lesson_field, #custom_words").sortable({
connectWith: ".lesson_field, #custom_words",
});
}
但是,当我添加一个新的lesson_field类时,它的行为不像一个可排序的元素。
我尝试通过使用“破坏”来破坏可排序,并重新初始化,但这不起作用。我也尝试过使用“refresh”和“refreshPosition”
小提琴: http://jsfiddle.net/rz2mh8ec/6/(按“添加”重现问题)
由于
答案 0 :(得分:3)
对具有自己的.clone()
属性的元素使用id
,您正在复制此id
这不是一个好习惯。
接下来就是 sortable
应该应用于父元素。
修改强>
似乎问题出在clone(true)
上
当事件处理程序未与元素(.clone(false)
)
在尝试destroy
之前,您必须clone(true)
排序:
var lessons = 2
function sort() {
$(".lesson_field, #custom_words").sortable({
connectWith: ".lesson_field, #custom_words",
});
}
window.addanother = function () {
// destroy sortable:
$(".lesson_field, #custom_words").sortable("destroy");
// then clone the element:
var e = $("#lesson_1").first().clone(true)
e.attr("id", "lesson_" + lessons)
lessons++;
e.insertAfter($("#lesson_1").last())
sort();
}
sort();