Вложенный обработчик события jQuery onClick срабатывает несколько раз
Используя загрузочный модал, я хочу зарегистрировать обработчик событий как для модального, так и для следующей кнопки отправки внутри этого модального режима.
Вызов модального и закрытие ist впоследствии приводит к многократному выполнению события #modalSubmitButton. Не могли бы вы придумать какое-нибудь решение, чтобы предотвратить такое поведение и запустить только фактическое событие, игнорируя предыдущие вызовы модального режима? Может быть, мой подход к вложению обработчиков неправильный?
Я уже перепробовал все комбинации event.stopPropagation
/ event.unbind()
, так далее.
$(document).on('click', '#myModalID' function () {
// i fetch some data from the clicked element here
// and make it accessible to the subsequent eventHandler
$(document).on('click', '#modalSubmitButton' function () {
// eventually calling service on click of button
invokeService()
});
});
1 ответ
Решение
Простое исправление: не вкладывайте обработчики событий. С реализацией делегированных обработчиков событий (которые вы уже используете) в этом нет необходимости.
$(document).on('click', '#myModalID' function () {
// i fetch some data from the clicked element here
// and make it accessible to the subsequent eventHandler
});
$(document).on('click', '#modalSubmitButton' function () {
// eventually calling service on click of button
invokeService()
});