在下面的例子http://jsfiddle.net/anu4nits/449d5j8e/如何從onchange事件處理程序停止click事件的執行
<input type="text" id="in" /> <input type="button" value="click" id="button" /> $('#in').change(function() { console.log('change event'); dialog.dialog("open"); }); $('#button').on('click', function (e) { console.log('click event'); });
我附上兩個事件一個是文本onchange事件和其他的就是點擊按鈕事件。如果我在文本框中寫入某些內容並點擊按鈕,則應該分別執行change事件的處理程序和click事件的處理程序。但是,當我在變化事件的處理程序中調用模態對話框時,單擊事件的處理程序沒有得到執行,因爲模態對話框不允許任何後臺活動。但是這隻與Chrome和Mozilla有關。在IE處理程序中,兩個事件都得到執行。
我希望所有瀏覽器的一致行爲,最好我不想在IE中執行點擊處理程序。我也不想在全球範圍內設置一些標誌來進行狀態檢查。此外,我不能從按鈕中分離事件,因爲在我的應用程序按鈕ID和它的處理程序在運行時生成。 是否有任何其他方式可以停止執行change事件處理程序中的click事件。
點擊和更改都是單獨的事件你不能停止從另一個這樣的傳播。您的代碼將停止傳播只有在dom樹 – Ninja 2014-11-06 09:59:10
嘗試該腳本中的change事件。它會阻止觸發點擊事件,因爲首先發生更改事件 – shaN 2014-11-06 10:12:30
在哪個瀏覽器中執行此操作? – Ninja 2014-11-06 10:17:43