使用迭代函數分配事件監聽器
使用循環向多個物件新增事件監聽器時,可能會出現所有監聽器都會引用同一對象,通常是循環中的最後一個對象。這是因為 JavaScript 處理變數作用域和函數閉包的方式。
要解決此問題,請採用以下方法:
在此程式碼中,匿名函數包裹在內部範圍,為每次迭代建立一個閉包。透過使用「()」運算子立即執行函數,每次迭代都有自己的私有作用域,確保其中的變數和函數不會幹擾其他迭代的變數和函數。
這種方法授予每個事件偵聽器存取其預期變量,解決所有偵聽器針對相同物件的問題。
以上是如何將事件偵聽器指派給多個物件而不發生範圍衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!