頁面載入時觸發 addEventListener 事件
在 JavaScript 中,addEventListener() 方法旨在為特定元素註冊事件偵聽器。但是,當嘗試將單擊偵聽器附加到動態建立的元素時,一些開發人員可能會遇到一種特殊的行為,即事件在頁面載入時觸發,而不是在單擊元素時觸發。為了解決這個問題,讓我們深入研究程式碼片段及其執行。
在提供的腳本中,使用 document.write() 建立 ID 為「myDiv」的 HTML div 元素,然後檢索該元素使用 document.getElementById("myDiv")。然後,使用 addEventListener() 方法將「click」事件的事件偵聽器附加到檢索到的元素。監聽器被定義為alert("clicktrack"),它嘗試顯示一條帶有訊息「clicktrack」的警報。
問題的癥結在於事件處理程序傳遞給addEventListener() 的方式。使用函數表達式時,必須將函數封裝在括號內,以確保傳遞函數本身而不是其傳回值。在程式碼片段中,正確的語法應該是:
el.addEventListener("click", function() { alert("clicktrack"); }, false);
此修改將警報呼叫封裝在函數內,確保函數被註冊為事件處理程序而不是函數的回傳值,這將是不明確的。因此,該事件只會在按預期點擊「myDiv」元素時觸發,而不是在頁面載入時觸發。
以上是為什麼我的點擊事件偵聽器在頁面載入時觸發,而不是在點擊元素時觸發?的詳細內容。更多資訊請關注PHP中文網其他相關文章!