Я работаю с устаревшими HTML-страницами, написанными ~ 10 лет назад. При этом должно быть ясно известно, что рефакторинг старого кода не только НЕ эффективен по времени, но и является рискованным делом.HTML onClick VS jQuery mousedown Timing
Унаследованная веб-страница содержит много кнопок, которые активируют события JavaScript, используя тег onClick = "myFunction()". Мне было поручено связать файл JavaScript (который использует jQuery) на этих старых веб-страницах. Я добавил файл JavaScript в вопросе и JQuery 1.9.1 источник и придает им наследие HTML-страниц до закрытия тела тега, например:
<script src="jquery-1.9.1.min.js"></script>
Этот исходный файл JavaScript (который использует JQuery) активирует MouseDown событие на кнопках с прилагаемым классом «getStats», например:
$(document).on('mousedown', '.getStats', function (event) {
//Stuff
});
Однако, когда JQuery активирует, он не выполняет переадресацию на кнопке предполагается сделать через событие HTML OnClick.
Я не могу найти какую-либо информацию в Интернете о том, как происходит синхронизация событий HTML onClick и jQuery mousedown, независимо от того, встречаю ли я состояние гонки. Должны произойти как события onclick redirect, так и jQuery mousedown, и я не могу просто вернуться и редактировать все устаревшие события HTML onClick, которые будут выполняться в jQuery, так как это займет месяцы работы.
Образец jsFiddle: https://jsfiddle.net/koa2hsbp/
JQuery работает сразу же. Если вы закомментируете функцию jQuery mousedown, то работает HTML onClick. Но я должен сделать это, чтобы активировать обе части (предпочтительно jQuery mousedown до HTML onClick), не изменяя функциональность HTML. (Опять же, изменение устаревшего кода само по себе является дорогостоящим делом.)
В вашем примере события распространяются нормально. Это 'alert()', который прерывает распространение для обработчика кликов. Изменить: смотреть консоль: https://jsfiddle.net/koa2hsbp/1/ – Antiga
@Antiga почти прав - предупреждение делает трюк, но речь идет не о прекращении распространения - событие click просто не запускается, так как это никогда не случается с предупреждением , – Dmitry