addEventListener的⽤法⽰例介绍
(要注意的是div必须放到js前⾯才⾏)
⼀般情况下,如果给⼀个dom对象绑定同⼀个事件,只有最后⼀个会⽣效,⽐如:
复制代码代码如下:
那么将只有method3⽣效。
如果是Mozilla系列,⽤addEventListener可以让多个事件按顺序都实现,⽐如:
复制代码代码如下:
var btn1Obj = ElementById("btn1");
/
/element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执⾏顺序为method1->method2->method3
如果是ie系列,⽤attachEvent可以让多个事件按顺序都实现,⽐如:
复制代码代码如下:
var btn1Obj = ElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
执⾏顺序为method3->method2->method1
=======================================================
Mozilla中:
addEventListener的使⽤⽅式
target.addEventListener(type,listener,useCapture);
target:⽂档节点、document、window 或 XMLHttpRequest。
type:字符串,事件名称,不含“on”,⽐如“click”、“mouseover”、“keydown”等。
listener :实现了 EventListener 接⼝或者是 JavaScript 中的函数。
useCapture :是否使⽤捕捉,⼀般⽤ false 。例如:ElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE中:
target.attachEvent(type, listener);
target:⽂档节点、document、window 或 XMLHttpRequest。
type:字符串,事件名称,含“on”,⽐如“onclick”、“onmouseover”、“onkeydown”等。
listener :实现了 EventListener 接⼝或者是 JavaScript 中的函数。例如:
W3C 及 IE 同时⽀持移除指定的事件, ⽤途是移除设定的事件, 格式分别如下:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
DOM2 的进化:
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()这个函数来观察到:
复制代码代码如下:
addEventListener(event,function,capture/bubble);
参数event如上表所⽰, function是要执⾏的函数, capture与bubble分别是W3C制定得两种时间模式,简单来说capture就是从document的开始读到最后⼀⾏, 再执⾏事件, ⽽bubble则是先寻指定的位置再执⾏事件.
capture/bubble的参数是布尔值, True表⽰⽤capture, False则是bubble.Windows Internet Explorer也有
制定⼀种EventHandler,是 attachEvent(), 格式如下:
复制代码代码如下:
window.attachEvent(”submit”,myFunction());
⽐较特别的是attachEvent不需要指定capture/bubble的参数, 因为在windows IE环境下都是使⽤Bubble的模式.
如何判断是否⽀持哪种监听呢?如:
复制代码代码如下:
if (typeof window.addEventListener != “undefined”) {
ondblclick是什么意思window.addEventListener(”load”,rollover,false);
} else {
window.attachEvent(”onload”,rollover)
}
上述的 typeof window.addEventListener != “undefined” 程序代码可以判断使⽤者的浏览器是否⽀持AddEventListener这个事件模型, 如果不⽀持就使⽤attachEvent.
W3C 及 IE 同时⽀持移除指定的事件, ⽤途是移除设定的事件, 格式分别如下:
W3C格式:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论