В моем приложении 4 rails У меня возникли проблемы с запуском события ajax «success» для ссылок, которые динамически добавляются в страницу с помощью jquery. Я создаю разметку следующим образом и динамически добавляю ее на страницу.событие ajax success не запускается для динамически добавленных ссылок
<a data-confirm="Are you sure?" data-method="delete" data-remote="true" href="/mylink" rel="nofollow">delete</a>
Следующая ДЕЛАЕТ спускового:
$(document).on("ajax:success"
Но версия, которая не вызывает, и один я хочу использовать это:
$("a[data-remote]").on("ajax:success"
Любая идея, почему $(document)
версия работает, а версия $("a[data-remote]")
нет? Чтобы уточнить, это не работает специально, когда вещи добавляются динамически. Для ссылок, которые уже находятся на странице, они запускают события просто отлично.
Примечание: Turbolinks удален.
Это потому, что обработчик события .on() не обрабатывает динамически добавленные элементы, если вы не укажете его так: «$ (document) .on (« ajax: success »,« a [data-remote] », функция() {});». Он работает с «$ (document)», потому что обработчик события захватывает событие, когда он пузырится до документа, [здесь больше о пузырях и захвате событий] (http://www.smashingmagazine.com/2013/11/12/an -внедрение к РОМ события /). Вы можете добавить обработчик события к родительскому элементу, который содержит все «a [подтверждение данных]», поэтому он не фильтрует каждое событие. – Deviljho
@ AdriánSalgado, вы хотите поместить свой комментарий в ответ, чтобы я мог принять и дать вам баллы? – Dty