Я только что узнал, что вы можете использовать live()
вместо bind()
, чтобы убедиться, что обработчик событий все еще существует после перезагрузки содержимого с помощью AJAX ... но что я могу сделать с другими добавленными JQuery, такими как .sortable()
? У меня есть UL, который мне нужно перезагрузить после сортировки или добавления; но после перезагрузки 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);
}
});
}
});