1
我刚刚得知,您可以使用live()
,而不是bind()
以确保事件处理程序仍然存在内容与AJAX重载后...但我能做些什么与其他添加JQuery的,如.sortable()
?我有一个UL,我需要重新加载后排序或添加;但在AJAX重新加载后,排序并不完全正确...添加了jQuery内容加载AJAX
它不会完全失去排序能力,但拖动变得更加困难;它会跳转,看似切换其他部分,这不是我想拖动的部分。这只发生在部分重新加载之后;我的猜测是,当它重新加载时,我需要重新附加排序...我怎么能做到这一点?这里是我的代码:
$("#sections").sortable({
start: function (event, ui) {
startIndex = ui.item.index();
},
update: function (event, ui) {
$.ajax({
type: "POST",
url: "/Form/sortSections",
data: {
formID: '@(Model.formID)',
displayOrder: ui.item.index() + 1,
sectionID: $(ui.item).attr("id"),
startDisplayOrder: startIndex + 1
},
success: function (result) {
$.get("/Form/_AllSections/@(Model.formID)", function (data) {
$("#sections").html(data);
});
},
error: function (req, status, error) {
alert(error);
}
});
}
});
虽然开始实施你的解决方案,我发现实际问题......我的AJAX GET返航整个UL,不仅列表项。因此,我将UL添加到#sections UL中,这使得HTML以多种方式无效。无效的HTML必须用#draggable拧紧。感谢您的建议;我相信我将来需要使用'.live('load',function())''。 – GendoIkari