Как узнать, где событию запрещено всплывать?

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть форма, и я пытаюсь отправить ее, но ничего не происходит. Я вижу, что вызывается $(‘#myform’).submit(), но затем ничего не происходит. Я предполагаю, что где-то событие отправки «отключается». Есть ли у меня способ узнать, где это событие перехватывается?

обновление предложение Дарина Димитрова помогло мне выяснить, где именно обрабатывается отправка. Я смог регистрировать обработчики для отправки событий. Затем я установил точки останова внутри обработчиков и прошел через код, чтобы выяснить, где мой процесс отправки был «отменен». p.s. Я, конечно, просматриваю журнал и отладку в firebug.

введите описание изображения здесь

Комментарии:

1. Уверен, что есть способ — отладка 🙂 Вы также можете поделиться частью кода здесь, чтобы мы могли помочь вам лучше.

2. Да, пробовал отладку. В firebug, прямо перед нажатием кнопки отправки, я выбираю опцию «прервать при следующем». Затем я нажимаю кнопку отправки, я врываюсь в библиотеку jQuery, которая занимается событиями фокусировки / размытия. Когда я прохожу через это, он ничего не делает, просто выходит из функции, и мне некуда идти до отладки.

Ответ №1:

Чтобы узнать, какие обработчики событий отправки зарегистрированы в вашей форме, вы можете использовать следующее, чтобы распечатать их на консоли:

 $.each($('#myform').data('events').submit, function(key, value) {
    console.log(value.handler);
});
  

Это, очевидно, предполагает, что эти обработчики событий были зарегистрированы в jQuery.

Комментарии:

1. В какой момент я бы назвал это? При загрузке? При нажатии кнопки?

2. @dev.e.loper, вы могли бы ввести этот код непосредственно перед ручным запуском события .submit формы, чтобы проверить, какие обработчики зарегистрированы.