我有一個父元素,其上附有mouse up
和mouse down
事件,以及附加了click
事件的子元素。防止childup在父母后的onclick?
在家長觸發mouseup
事件後,有什麼辦法可以防止兒童發生click
事件?
一個例子,在JSfiddle here,目標是讓內部正方形不會變成綠色,如果我點擊它。
理想情況下,我想不做修改$('#inner').on('click', function(){})
。我已經知道我可以在mouseup
上設置一個布爾值,並在click
上檢查它,但我試圖找到一種方法來做到這一點,而無需修改點擊事件。
使用jquery(或任何其他庫)是選項,我沒有任何限制,除非不修改click
方法。
編輯
感謝@adeneo您的建議,這看起來很有希望,但它讓我意識到我錯過了問題的一個重要組成部分。在mouseup
裏面會有一個有條件的檢查,看看是否應該阻止點擊。如果我刪除了該事件,我可以在避免點擊之後以某種方式將其添加回來?例如,在setTimeout
中。我不知道如何(或者如果有可能)獲得對已刪除的click
函數的引用,然後重新添加處理程序。
希望這new fiddle here幫助我解釋一點點更好!
你不能沒有修改它禁用單擊事件處理程序。一旦mouseup激發,你必須使用off()來移除事件處理程序? – adeneo
http://jsfiddle.net/6gw4x/30/ – adeneo
你好,請檢查更新的小提琴 http://jsfiddle.net/6gw4x/32/ 和我的EDITTED在這篇文章中回答 –