注册事件兼容

方式:

1.ele.on事件=function  通用方法

2.addEventListener(事件类型,事件处理函数,useCaptrue);  this指向target

a)是元素的方法

b)IE9以上才支持

c)useCaptrue:Boolean值:true:在捕获阶段调用同类事件

   false:在冒泡阶段调用同类事件

d)事件的三个阶段:捕获,目标,冒泡

3.  attachEvent(事件类型,事件处理函数) :IE9以下支持 this指向window

 

    由于this指向不同,浏览器兼容性不同,想要三个方式调用同一个function可采用如下的方式:

  function createEventRegister(){
	if(window.addEventListener){
		return function(target, type, handler){
            	 // this ---> window
		target.addEventListener(type,handler)
		}
	}else if(window.attachEvent){
		return function(target, type, handler) {
		target.attachEvent("on" + type, function(){
    		handler.call(target, window.event);
		})
		}
	}else{
		return function(target, type, handler) {
    		target["on" + type] = handler;
		}
	}
  }

	var registeEvent = createEventRegister();

	window.onload =function () {
    	var div = document.getElementById("div1");
	registeEvent(div,"click",function(e){
    		console.log(e);
    		console.log(this);
	//this---->该事件的触发对象
	alert("太阳天空照,花儿对我笑")})
	}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值