Я работаю с существующим веб-приложением, в приложении есть множество кнопок отправки в разных формах, некоторые используют обычный пост http, некоторые определяют функцию onClick, а некоторые привязывают обработчик события js к кнопке, используя класс на элементе.
Что я хочу сделать, это связать другой обработчик событий с этими кнопками, просто добавив класс к кнопкам, но то, что я хочу определить, будет гарантировать, что обработчик нового события будет выполнен, или может быть один из форм отправлять действия до того, как это будет означать, что моя новая функция не попала.
Пример сценария: я хочу добавить класс к этим кнопкам, который сводит их все к общей js-функции, которая просто записывает использование в некоторый api. Есть ли риск того, что функция ведения журнала не вызывается, потому что отправитель формы прошел навигацию от страницы?
Я не выполнял множество js-разработок, и я мог проверить это 100 раз и просто повезло с ним.
Ниже приведен код, который я тестировал для одного из примеров - опять же, я не спрашиваю, как связать несколько событий, вопрос заключается в моем понимании спецификации и гарантируется ли выполнение всех обработчиков.
$(document).ready(function(){
$('.testingBtn').click(function() {
window.location.replace("http://stackoverflow.com");
});
$( ".testingBtn" ).click(function(){
alert('submitting!');
});
});
<input class="testingBtn" type="submit" id="submitform" value="Complete Signup" />
Как видно выше, я могу связать несколько событий, и в этом примере просто перенаправлен на другой URL-адрес, но это может быть form.submit()
и т.д. В моем тестировании предупреждение всегда срабатывало первым, но я просто получаю повезло с условиями гонки?