DOM事件模型的两件事(2)

涼嫣很凉丶

涼嫣很凉丶

2016-02-19 14:09

今天图老师小编给大家精心推荐个DOM事件模型的两件事(2)教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~
二、IE的高级事件处理模型的问题
  
  重复绑定
  
  IE下没有addEventListener,但是也有自己的attachEvent,即所谓的MicrosoftModel。二者的实现基本相同只是attachEvent的第一个参数(事件类型)需要加”on”,而addEventListener不用,另外attachEvent因为不支持事件捕捉,所以也没有第三个参数。
  
  然而,attachEvent还有一个很要命的问题:重复绑定事件。(这是从ppkonJavaScript中学到的)
  
  一个例子:
  
  functionsayHello(){
  
  alert('Hello,world!');
  
  }
  
  //W3CModel
  
  $('div1').addEventListener('click',sayHello,false);
  
  $('div1').addEventListener('click',sayHello,false);
  
  //MicrosoftModel
  
  $('div1').attachEvent('onclick',sayHello);
  
  $('div1').attachEvent('onclick',sayHello);
  
  在W3C模型中,相同事件处理函数的绑定会被忽略,也就是说第二个$('div1').addEventListener('click',sayHello,false);会被忽略。
  
  而在Microsoft模型中,第二个$('div1').attachEvent('onclick',sayHello);同样会被执行,所以,当你点击#div1的时候,alert框会弹出来两次。更有甚者,在detachEvent时候,也同样要detachEvent两次才能彻底把sayHello从#div1的click事件中删除。
  
  为什么不继续使用alertID()了?
  
  这是因为IE的事件模型的另一个缺陷,在alertID中,使用了this关键字来指代被委派了该事件处理函数的元素,这样,在W3C模型中,alertID中的this指代了#div1或者#div2。
  
  但是在Microsoft模型中,缺少了对this的支持后,this.id就会变为undefined,因为这时候this指代了window对象。
  
展开更多 50%)
分享

猜你喜欢

DOM事件模型的两件事(2)

Web开发
DOM事件模型的两件事(2)

DOM事件模型的两件事(1)

Web开发
DOM事件模型的两件事(1)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

关于DOM事件模型的两件事

Web开发
关于DOM事件模型的两件事

必须警惕的孕前两件事

女人 孕前
必须警惕的孕前两件事

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

不要给婴儿做的两件事

新生儿护理 新生儿 新生儿呵护
不要给婴儿做的两件事

想要顺产必做的两件事

怀孕
想要顺产必做的两件事

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用Word2007为文档添加文字水印和图片水印

用Word2007为文档添加文字水印和图片水印

AJAX 请求实例

AJAX 请求实例
下拉加载更多内容 ↓