我正在使用〜10年前編寫的遺留HTML頁面。話雖如此,應該明確知道,重構舊代碼不僅不是時間有效的,而且是一項冒險的努力。HTML onClick VS jQuery mousedown計時
傳統網頁有許多按鈕,它們使用onClick =「myFunction()」標籤激活JavaScript事件。我的任務是將JavaScript文件(使用jQuery)連接到這些傳統網頁。我已經添加有問題的JavaScript文件和jQuery 1.9.1源,並將其連接到傳統的HTML頁面之前結束標記,例如:
<script src="jquery-1.9.1.min.js"></script>
這個JavaScript源文件(使用jQuery的)激活在與連接類「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就可以工作。但是我必須在兩部分都激活的情況下(最好是在onClick之前使用jQuery mousedown),而不改變HTML的功能。 (同樣,更改遺留代碼本身也是一項昂貴的努力。)
在您的示例中,事件傳播良好。這是'alert()'中斷傳播到點擊處理程序。編輯:觀看您的控制檯:https://jsfiddle.net/koa2hsbp/1/ – Antiga
@Antiga幾乎是正確的 - 警報做的伎倆,但它不是關於停止傳播 - 單擊事件根本不會觸發,因爲它從來沒有發生過警報。 – Dmitry