js 事件

1. 事件冒泡

box1.onclick=fuction(){console.log(1)}

box2.onclick=function(event){

event.stopPropagation(); // 停止事件冒泡   

event.cancleBubble = true; // ie 8以下阻止事件冒泡

event = event || window.event;

event.stopPropagation ? event.stopProgapation() : (event.cancleBubble = true);

};

2.注销事件  (删除事件)

bx.removeEventListener('click',chilidClick); // 必须为同一个方法

3.事件委托

window.onload = function(){

var oUl = document.getElementById("ul1");

oUl.onclick = function(ev){

var ev = ev || window.event;

var target = ev.target || ev.srcElement;

if(target.nodeName.toLowerCase() == 'li'){

alert(123);          

alert(target.innerHTML);

}

} }

 总结:

那什么样的事件可以用事件委托,什么样的事件不可以用呢?

适合用事件委托的事件:click,mousedown,mouseup,keydown,keyup,keypress。

值得注意的是,mouseover和mouseout虽然也有事件冒泡,但是处理它们的时候需要特别的注意,因为需要经常计算它们的位置,处理起来不太容易。

不适合的就有很多了,举个例子,mousemove,每次都要计算它的位置,非常不好把控,在不如说focus,blur之类的,本身就没用冒泡的特性,自然就不能用事件委托了。

你可能感兴趣的:(js 事件)