У меня есть определенные «страницы» на моем сайте, которые сортируются. Они также автоматически обновляют базу данных.
После сортировки списка li
вызывается php-страница, которая переупорядочивает «страницы», а затем я вызываю .html(data)
чтобы изменить порядок страниц, отображаемых на странице.
Однако, после этого, мои функции автоматического обновления в моем javascript перестают работать.
Существует #form1
который работает до того, как происходит сортировка, и вызывается .html(data)
. Как только он вызывается, предыдущий #form1
get удаляется и повторно добавляется на страницу. Это когда он перестает работать.
Кто-нибудь знает причину этого?
Мой скрипт обновления
$("#reportNav").sortable({ stop : function(event, ui){ var postData = $(this).sortable('serialize'); var url = "saveOrder.php"; $.ajax({ type: "POST", url: url, data: postData, success: function(data) { $('#reportContainer').html(data); }, error: function(data) { $changesSaved.text("Could not re-order pages."); } }); } });
То, что перестает работать / останавливается
var timeoutId; $('#form1').on('input propertychange change', function() { clearTimeout(timeoutId); timeoutId = setTimeout(function() { // Runs 1 second (1000 ms) after the last change $("#form1").submit(); }, 1000); });
Вероятно, это случай перезаписи ваших элементов, связанных с обработчиками, и в этом случае вам нужна делеция делегирования:
$('#reportContainer').on('input propertychange change', '#form1', function() {