首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript addEventListener 綁定 onchange 失效?正確寫法與常見錯誤

     編輯:程式設計疑難解答

錯誤代碼

obj.addEventListener("onchange", makeR(obj), false);

兩個錯誤

  1. 事件名稱應為 "change",而非 "onchange"(on 前綴僅用於 HTML 屬性 onchange="...")。
  2. 第二個參數需為函數參考,makeR(obj) 會立即執行並傳回 undefined,應包裝為匿名函數:function(){ makeR(obj); } 或箭頭函數 () => makeR(obj)。

正確寫法

obj.addEventListener("change", function(){ makeR(obj); }, false);
// 或
obj.addEventListener("change", () => makeR(obj), false);

補充

  • 若需移除監聽器,須保存函數參考:const handler = () => makeR(obj); obj.addEventListener("change", handler); obj.removeEventListener("change", handler);
  • IE8 及以下不支援 addEventListener,需用 attachEvent("onchange", handler)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved