addEventListener 的用法示例介紹
更新時間:2014年05月07日 15:17:03 作者:
這篇文章主要介紹了addEventListener 的用法,需要的朋友可以參考下
(要注意的是div必須放到j(luò)s前面才行)
一般情況下,如果給一個dom對象綁定同一個事件,只有最后一個會生效,比如:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
那么將只有method3生效。
如果是Mozilla系列,用addEventListener可以讓多個事件按順序都實現(xiàn),比如:
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
執(zhí)行順序為method1->method2->method3
如果是ie系列,用attachEvent可以讓多個事件按順序都實現(xiàn),比如:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
執(zhí)行順序為method3->method2->method1
=======================================================
Mozilla中:
addEventListener的使用方式
target.addEventListener(type,listener,useCapture);
target: 文檔節(jié)點、document、window 或 XMLHttpRequest。
type: 字符串,事件名稱,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :實現(xiàn)了 EventListener 接口或者是 JavaScript 中的函數(shù)。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE中:
target.attachEvent(type, listener);
target: 文檔節(jié)點、document、window 或 XMLHttpRequest。
type: 字符串,事件名稱,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :實現(xiàn)了 EventListener 接口或者是 JavaScript 中的函數(shù)。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C 及 IE 同時支持移除指定的事件, 用途是移除設(shè)定的事件, 格式分別如下:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
DOM2 的進化:
新的DOM2 用法可以addEventListener()這個函數(shù)來觀察到:
addEventListener(event,function,capture/bubble);
參數(shù)event如上表所示, function是要執(zhí)行的函數(shù), capture與bubble分別是W3C制定得兩種時間模式,簡單來說capture就是從document的開始讀到最后一行, 再執(zhí)行事件, 而bubble則是先尋找指定的位置再執(zhí)行事件.
capture/bubble的參數(shù)是布爾值, True表示用capture, False則是bubble.Windows Internet Explorer也有制定一種EventHandler, 是 attachEvent(), 格式如下:
window.attachEvent(”submit”,myFunction());
比較特別的是attachEvent不需要指定capture/bubble的參數(shù), 因為在windows IE環(huán)境下都是使用Bubble的模式.
如何判斷是否支持哪種監(jiān)聽呢?如:
if (typeof window.addEventListener != “undefined”) {
window.addEventListener(”load”,rollover,false);
} else {
window.attachEvent(”onload”,rollover)
}
上述的 typeof window.addEventListener != “undefined” 程序代碼可以判斷使用者的瀏覽器是否支持AddEventListener這個事件模型, 如果不支持就使用attachEvent.
W3C 及 IE 同時支持移除指定的事件, 用途是移除設(shè)定的事件, 格式分別如下:
W3C格式:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
一般情況下,如果給一個dom對象綁定同一個事件,只有最后一個會生效,比如:
復(fù)制代碼 代碼如下:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
那么將只有method3生效。
如果是Mozilla系列,用addEventListener可以讓多個事件按順序都實現(xiàn),比如:
復(fù)制代碼 代碼如下:
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
執(zhí)行順序為method1->method2->method3
如果是ie系列,用attachEvent可以讓多個事件按順序都實現(xiàn),比如:
復(fù)制代碼 代碼如下:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
執(zhí)行順序為method3->method2->method1
=======================================================
Mozilla中:
addEventListener的使用方式
target.addEventListener(type,listener,useCapture);
target: 文檔節(jié)點、document、window 或 XMLHttpRequest。
type: 字符串,事件名稱,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :實現(xiàn)了 EventListener 接口或者是 JavaScript 中的函數(shù)。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE中:
target.attachEvent(type, listener);
target: 文檔節(jié)點、document、window 或 XMLHttpRequest。
type: 字符串,事件名稱,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :實現(xiàn)了 EventListener 接口或者是 JavaScript 中的函數(shù)。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C 及 IE 同時支持移除指定的事件, 用途是移除設(shè)定的事件, 格式分別如下:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
DOM2 的進化:
DOM 0 Event | DOM 2 Event |
onblur() | blur |
onfocus() | focus |
onchange() | change |
onmouseover() | mouseover |
onmouseout() | mouseout |
onmousemove() | mousemove |
onmousedown() | mousedown |
onmouseup() | mouseup |
onclick() | click |
ondblclick() | dblclick |
onkeydown() | keydown |
onkeyup() | keyup |
onkeypress() | keypress |
onsubmit() | submit |
onload() | load |
onunload() | unload |
新的DOM2 用法可以addEventListener()這個函數(shù)來觀察到:
復(fù)制代碼 代碼如下:
addEventListener(event,function,capture/bubble);
參數(shù)event如上表所示, function是要執(zhí)行的函數(shù), capture與bubble分別是W3C制定得兩種時間模式,簡單來說capture就是從document的開始讀到最后一行, 再執(zhí)行事件, 而bubble則是先尋找指定的位置再執(zhí)行事件.
capture/bubble的參數(shù)是布爾值, True表示用capture, False則是bubble.Windows Internet Explorer也有制定一種EventHandler, 是 attachEvent(), 格式如下:
復(fù)制代碼 代碼如下:
window.attachEvent(”submit”,myFunction());
比較特別的是attachEvent不需要指定capture/bubble的參數(shù), 因為在windows IE環(huán)境下都是使用Bubble的模式.
如何判斷是否支持哪種監(jiān)聽呢?如:
復(fù)制代碼 代碼如下:
if (typeof window.addEventListener != “undefined”) {
window.addEventListener(”load”,rollover,false);
} else {
window.attachEvent(”onload”,rollover)
}
上述的 typeof window.addEventListener != “undefined” 程序代碼可以判斷使用者的瀏覽器是否支持AddEventListener這個事件模型, 如果不支持就使用attachEvent.
W3C 及 IE 同時支持移除指定的事件, 用途是移除設(shè)定的事件, 格式分別如下:
W3C格式:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
您可能感興趣的文章:
- Javascript 的addEventListener()及attachEvent()區(qū)別分析
- window.addEventListener來解決讓一個js事件執(zhí)行多個函數(shù)
- document.addEventListener使用介紹
- JS在IE和FF下attachEvent,addEventListener學(xué)習(xí)筆記
- 事件綁定之小測試 onclick && addEventListener
- javascript attachEvent和addEventListener使用方法
- 詳解addEventListener的三個參數(shù)之useCapture
- addEventListener()第三個參數(shù)useCapture (Boolean)詳細解析
- 講兩件事:1.this指針的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件處理上的區(qū)別
- addEventListener()與removeEventListener()解析
相關(guān)文章
javascrip高級前端開發(fā)常用的幾個API示例詳解
這篇文章主要為大家介紹了javascrip高級前端開發(fā)中常用的幾個API示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11詳解promise.then,process.nextTick, setTimeout 以及 setImmediate的
這篇文章主要介紹了詳解promise.then,process.nextTick, setTimeout 以及 setImmediate的執(zhí)行順序2018-11-11JavaScript中的Map數(shù)據(jù)結(jié)構(gòu)詳解
這篇文章主要為大家介紹了JavaScript的Map數(shù)據(jù)結(jié)構(gòu),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01詳解layui?laydate選擇時間的回調(diào)方法
這篇文章主要介紹了layui?laydate選擇時間的回調(diào)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01