我使用的是原生DOM的addEventListener
事件,像這樣:的addEventListener沒有連接到正確的範圍
const domElement = document.getElementById('ember464');
domElement.addEventListener('click', dosomething);
this._listeners.push({target: domElement, type: 'click', callback: dosomething});
此註冊的事件並將其存儲在一個_listeners
數組,以便以後可以清理。好消息是,這個事件確實附加到了DOM上,但是事件雖然目標顯然只限於單個按鈕,但處理程序似乎在檢測到單擊時觸發!
我做錯了什麼?
p.s.這裏是查看_listener
數組的瀏覽器檢查器......注意,突出顯示「目標」確實只指向我試圖定位的按鈕。 AKA中,目標是DOM節點,而不是用於標識節點的選擇器。
我現在看着在目標DOM元素調試器,我看到以下內容:
對於任何人有足夠的勇氣,這裏有一個代碼的工作演示。
完整的源代碼是在這裏:link
您的代碼看起來不錯,我測試了它(Chrome)和它應該的工作。轉到調試器工具,檢查ember464元素,選擇「事件監聽器」,並選中祖先複選框,看看它是否有幫助。 –
@SideriteZackwehdex感謝您的建議;我添加了我附加的事件偵聽器的屏幕截圖,並且它在Window級別附加,即使我99%確定我已經捕獲了它的正確範圍。 :( – ken