欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javaScript事件机制兼容【详细整理】

程序员文章站 2023-11-13 13:00:28
【添加事件机制】  addeventlistener  和  attachevent [w3c] addeventlistener('cl...

【添加事件机制】  addeventlistener  和  attachevent

[w3c]

addeventlistener('click' , function(){alert('hello world')} ,false )  //w3c规范添加事件(ie8及以上不兼容);  第一个参数为事件类型 ,第二个为事件程序 ,第三个 false为事件冒泡,true为事件捕获

[ie]

attachevent('onclick',function(){alert('hello world')})  //ie添加事件;  第一个参数为事件类型(需要加on) ; 第二个为事件程序 ; 因为ie只支持事件冒泡,所以只有两个参数

[跨浏览器兼容]

function insertevent(obj,event,fun){

  if(obj.addevenlistener){

    addeventlitener(event,fun,false)

  }else if(obj.attach){

    attachevent('on'+event,fun)

  }  

}

【删除事件机制】 removeeventlistener  detachevent

[w3c] removeeventlistener

removeeventlistener()    //利用addeventlistener新增的事件只能通过removeeventlistener来删除;

[注意] //以下这种删除事件方式是错误的,因为事件程序必须不能是一个匿名函数

addeventlistener('click' , function(){alert('hello world')} ,false )

removeeventlistener('click',function(){alert('hello world')},false) 

 [解决]

addeventlistener('click' , box ,false );

removeeventlistener('click',box,false) ;

function box(){

  alert('hello world');

}

[跨浏览器兼容]

function deleteevent(obj,event,fun){

  if(obj.removeeventlistener){

    removeeventlistener(event,fun,false);

  }else if(obj.detachevent){

    detachevent('on'+event,fun)

   }

}

 【阻止特定事件的默认行为】

[preventdefault  和returnvalue]

[w3c] preventdefault

[ie]  reutrnvalue

[跨浏览器兼容]

function(event){

  event=event || window.event;

  if(event.preventdefault){

    event.preventdefault()

  }else{

   event.returnvalue=false;

  }

}  

【获取目标对象】

[target 和 srcelement]

function(event){

  event=event || window.event;

  if(event.target){

    return event.target;

  }else if(event.srcelement){

    return event.srcelement;

  }

 

  }

以上这篇javascript事件机制兼容【详细整理】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。