Я работаю с устаревшими HTML-страницами, написанными примерно 10 лет назад. При этом следует четко понимать, что рефакторинг старого кода не только НЕэффективен по времени, но и является рискованным занятием.
Устаревшая веб-страница имеет множество кнопок, которые активируют события JavaScript с помощью тега onClick="myFunction()". Мне было поручено связать файл JavaScript (который использует jQuery) с этими устаревшими веб-страницами. Я добавил рассматриваемый файл JavaScript и исходный код jQuery 1.9.1 и прикрепил их к устаревшим HTML-страницам перед закрывающим тегом body, например:
<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 происходит, чтобы понять, сталкиваюсь ли я с состоянием гонки. Должны произойти как перенаправление HTML onClick, так и события jQuery mousedown, и я не могу просто вернуться и отредактировать все устаревшие события HTML onClick, которые должны быть выполнены в jQuery, так как это потребует месяцев работы.
Пример jsFiddle: https://jsfiddle.net/koa2hsbp/
jQuery работает сразу же. Если вы закомментируете функцию jQuery mousedown, то HTML onClick будет работать. Но я должен сделать это там, где активируются обе части (предпочтительно jQuery mousedown до HTML onClick), без изменения функциональности HTML. (Опять же, изменение устаревшего кода само по себе является дорогостоящим мероприятием.)
alert()
, который прерывает распространение в обработчик кликов. Изменить: следите за своей консолью: jsfiddle.net/koa2hsbp/1 - person Antiga   schedule 09.12.2015