您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Js on及addEventListener原理用法有什么區別,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一.首先介紹兩者的用法:
1.on的用法:以onclick為例
第一種:
obj.onclick = function(){ //do something.. }
第二種:
obj.onclick= fn; function fn (){ //do something... }
第三種:當函數fn有參數的情況下使用匿名函數來傳參:
obj.onclick = function(){fn(param)}; function fn(param){ //do something.. }
不能夠這樣寫:錯誤寫法:obj.onclick= fn(param):
因為這樣寫函數會立即執行,不會等待點擊觸發,特別注意一下
2.addEventListener的用法:
形式:
addEventListener(event,funtionName,useCapture)
參數:
寫法:
第一種:
obj.addEventListener("click",function(){ //do something }));
第二種,沒參數可以直接寫函數名
obj.addEventListener("click",fn,fasle)); function fn(){ //do something.. }
第三種:函數有參數時需要使用匿名函數來傳遞參數
obj.addEventListener("click",function(){fn(parm)},false);
二.兩者的區別
1.on事件會被后面的on的事件覆蓋
以onclick為例:
//obj是一個dom對象,下同//注冊第一個點擊事件 obj.onclick(function(){ alert("hello world"); }); //注冊第二個點擊事件 obj.onclick(function(){ alert("hello world too"); });
最終會只有彈框輸出:
hello world too
2.addEventListener 則不會覆蓋。
//注冊第一個點擊事件 obj.addEventListener("click",function(){ alert("hello world"); })); //注冊第二個點擊事件 obj.addEventListener("click",function(){ alert("hello world too"); }));
這樣會連續輸出:
hello world hello world too
三.addEventListener注意事項:
1.特別說明addEventListener不被IE9以下兼容,IE9以下用使用attachEvent()
obj.attachEvent(event,funtionName);
參數:
event:事件類型(需要寫成“onclick”前面加on,這個與addEventListener不同)
funtionName:方法名(要參數是也是需要使用匿名函數來傳參)
四.事件集合:
1.鼠標事件:
2.鍵盤事件:
五.總結:
onXXX與addEventListener都是為dom元素添加事件監聽,使其在事件發生后執行相應的代碼,操作。有了它們我們實現了頁面與用戶交互。
以上就是Js on及addEventListener原理用法有什么區別,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。