我有兩個Web組件。首先是輸入字段。其次是一個帶有按鈕的表單。我的頁面只需將輸入的Web組件放入表單Web組件中。嵌套的Web組件和事件傳播
輸入Web組件管理模糊事件以進行一些驗證。此驗證在發生錯誤時將一些元素添加到DOM中。 表單Web組件管理按鈕上的點擊事件以執行一些操作。
如果焦點位於輸入中,並且我單擊該按鈕,則會觸發模糊事件,但不會觸發點擊事件。 如果我刪除了在DOM中添加一些元素的代碼(在blur事件中),這兩個事件被觸發!
下面是要證明一個小提琴:https://jsfiddle.net/2guc1rkj/
- 打開控制檯
- 把重點放在輸入,並單擊按鈕 - >控制檯顯示「模糊處理」
- 註釋行32( parent.appendChild(content);),運行Fiddle,將焦點放在輸入上,然後單擊按鈕 - >控制檯顯示「模糊」和「單擊」!
行發表評論:
parent.appendChild(content);
爲什麼當我模糊事件做出一些修改的DOM我的單擊事件不工作?
點擊,你認爲這是非常緩慢,你會看到按鈕從鼠標下鼠標鬆開,這意味着前點擊移出不是。 – dandavis