DOM0级事件处理与DOM2级事件处理的区别

DOM是分等级的,分别是DOM0,1,2,3级别越高,语句越高级。

一、DOM0级事件处理

DOM0级事件处理方式就是讲一个函数赋值给一个事件处理属性,如:

box.onclick = function(){
	alert("我是box");
}

就是把函数赋值给了box的onclick属性,当然每个元素都有自己处理程序的属性,例如:onmousedown、onmouseup等,

on**这种事件绑定方法属于DOM0级事件绑定。

DOM0级事件有什么特点:
1.DOM0级事件只能触发事件冒泡阶段不能触发事件捕获阶段。
box2.onclick = function(){
	alert("我是box2");
}
box3.onclick = function(){
	alert("我是box3");
}
box1.onclick = function(){
	alert("我是box1");
}

  不管我们怎么改变事件的绑定顺序,不影响我的弹出框。box3然后box2最后box1。为什么?因为onclick只能触发事件冒泡不能触发事件捕获。因为事件冒泡是从事件流的最内层的元素依次往外层传播。

2.同一元素绑定相同的事件,后面的会覆盖前面的。
box3.onclick = function(){
	alert("A");
}
box3.onclick = function(){
	alert("B");
}
box3.onclick = function(){
	alert("C");
}

点击box3只会弹出C。因为on**方法相当于给元素添加属性。后面写的会覆盖先写的。

多说一点:还可以通过行内式给元素绑定事件。

3.this指的是事件流传播到的这个元素,就元素本身。

二、DOM2级事件处理

DOM2绑定事件的方法addEeventListener();

DOM2删除事件的方法removeEeventListener();

addEventListener(事件名事件执行语句,布尔值)

事件名:click不用书写on,只需要书写click

事件执行语句:就是函数,可以是匿名函数,也是有名函数。

布尔值:true表示事件捕获false表示事件冒泡。

DOM2级事件绑定的特点:

1、对于精确的元素不区分事件捕获和事件冒泡,事件的执行顺序是按照绑定顺序来的。

2、同一个元素绑定相同的事件,后面的不会覆盖前面的。因为DOM2级事件绑定不是给元素添加属性是直接添加的事件。等同于给一个元素绑定了多个事件。

box2.addEventListener("click",function(){
	console.log("c");
},false);
box2.addEventListener("click",function(){
	console.log("D");
},false);
box2.addEventListener("click",function(){
	console.log("E");
},false);

以上“c”、“D”、“E”都会输出。

另外,在DOM2级事件处理中通过addEventListener()添加的匿名函数无法移除,要先给函数命名:

 function handler(){
        console.log("可以移除的函数");
    }
    btn.addEventListener('click',handler, false);
    btn.removeEventListener('click',handler,false);















  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值