Итак, у меня есть форма, которую я отправляю, используя метод jquery post, и заменяю ее содержимым данными, возвращаемыми ajax. Вот код:
$(".filter_field").change(function() {
$.post("/business/feedbacks/", $("#filter_form").serialize(),
function(data) {
$('#table-content').replaceWith($('#table-content', $(data)));
});
});
Теперь я столкнулся с двумя проблемами с этим методом:
1) Я также использую кнопку сброса, которая просто сбрасывает значения полей формы до начальных значений, а затем запускает событие изменения, как показано в следующем коде:
$('#filter_reset').click(function () {
$(':input','#filter_form')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
$(".filter_field").trigger('change');
});
Теперь, когда я нажимаю кнопку сброса, он сбрасывает поля формы и отправляет форму, используя ajax, через событие изменения, описанное выше. Пока все хорошо, но теперь я больше не могу инициировать событие изменения. Теперь, независимо от того, какое поле я щелкаю сейчас в форме, оно просто больше не отправляет форму, используя ajax.
2) У меня установлен плагин soundmanager в разделе # table-content (несколько его экземпляров). Теперь после отправки ajax этот плагин soundmanager перестает работать, поскольку я предполагаю, что, поскольку soundmanager загружается при событии ready, он не выполняется после отправки ajax и replaceWith, следовательно, он перестает работать.
Какие-нибудь решения, чтобы обойти эти проблемы? Я новичок в запросе, поэтому извините, если я делаю вещи неправильно, пожалуйста, направьте меня в правильном направлении Заранее большое спасибо.
Редактировать: получается, что если я включу $ .getScript ("/ static / js / 360player.js"); это работает правильно. Нет ли способа присоединить события к элементам, замененным с помощью команды jquery replaceWith. Событие «Вкл.» Не работает вообще.
Edit2: Оказывается, я использовал 'on' в неправильном делении. Мой плохой: (* 1017 *