事件冒泡的优点:当div子级别都存在某一个事件时,可直接在父级上定义该事件。不用为每一个子级定义该事件。(待测试)
1、子元素onclik事件,外层div也将获取onclick进行点击事件。
2、不能冒泡的事件:blur、focus、load、unload
ie: onmouseenter,onmouseleave 代替了onmouseover和onmouseout,但是不会发生冒泡。
3、阻止冒泡
(1)IE:cancelBubble
(2)FF:stopPropation()
4、事件监听
obj.onclick = function(){}
obj.onclick = function(){}
多次事件发生,会覆盖,只发生后写的onclick。
则使用:attachEvent、addEventListener
用:
obj.attachEvent("onclick",method1);
obj.aatachEvent("onclick",method2);
都执行。执行顺序:2-1
obj.addEvenListener("click",mehtod1,false);
obj.addEvenListener("click",method2,false);
都执行。执行顺序:1-2
(1)IE
obj.atttachEvent(type,listener);
obj:文档节点、document、window、XMLHttpRequest
type:字符串、事件名称、包括on(onclick,onmouseover,onkeydown等)
listener:实现了EventListener接口或者是javascript中的函数,如:document.getElementById().attachEvent("onclick",function(event){});
(2)Mozilla
obj.addEventListener(type,listener,useCapture);
obj:文档节点、document、window、XMLHttpRequest
type:字符串、事件名称,不包括on(click、moseover、keydown)
listener:实现了EventListener接口或者是javascript函数。
useCapture:是否使用捕捉,一般用false。如:obj.addEventListener("keydow"\function(event){},false);
(3)移除指定事件
移除指定事件:detachEvent(event,function) // IE
移除指定事件:removeEventListener(event,function) //Mozilla