js 事件

1. 事件冒泡

<div id = 'box1'><div id = 'box2'></div></div>

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之类的,本身就没用冒泡的特性,自然就不能用事件委托了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事件流分为两种,捕获事件流和冒泡时间流 捕获事件流:从根节点出发开始执行,一直往子节点查找执行,直到查到到根节点。...
    路上灵魂的自由者阅读 422评论 0 0
  • 在触发DOM上的某个事件时,会产生一个事件对象event。这个对象中包含着所有与事件有关的信息。包括导致事件的元素...
    Miss____Du阅读 5,133评论 0 7
  • 什么是事件: 事件是交互体验的核心功能 一.事件冒泡: 当一个事件发生时,这个事件会从内向外逐层传递。 二.为什么...
    轻描淡写mua阅读 541评论 0 0
  • 一、DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0级事件 了解DOM0级事件之前,先了解下H...
    任少鹏阅读 264评论 0 1
  • 饥人谷事件课件 1.DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0事件有两种:一是在标签内写...
    饥人谷_米弥轮阅读 275评论 0 0