你的位置:首页 > Java教程

[Java教程]事件绑定2

关于现代事件绑定,W3c自带两个事件添加删除函数
addEventListener removeEventListener

window.addEventListener('load',function(){   alert('w3c');
  },false);

可以解决
1.多个函数添加到同一个事件类型下被覆盖的问题

window.addEventListener('load',function(){   alert('w3c');//最先被执行的代码  },false);window.addEventListener('load',function(){   alert('w3把');  },false);window.addEventListener('load',function(){   alert('w3c5茶');//最后被执行的代码  },false);

冒泡执行顺序,从最上面的代码开始往下执行,并且不会覆盖,每个事件都会被执行到。
2.解决了重复添加同一个函数的判定问题

window.addEventListener('load',fun,false);window.addEventListener('load',fun,false);function fun(){  alert('lee');}

只会被执行一次,相同函数,重复添加,会只显示一个,其他的被屏蔽掉。

3.解决了this指针传递的问题

window.addEventListener('load',function(){    var box=document.getElementById('box');    box.addEventListener('click',function()    {        alert(this);      },false);    },false);

在现代事件函数中,第二个参数是函数,该函数内的指针指的是它添加的对象,但是在传统事件指的是window必须手工添加指针传递。


冒泡与捕获

window.addEventListener('load',function(){        var box=document.getElementById('box');    box.addEventListener('click',function()    {        alert(this);      },true);       document.addEventListener('click',function()    {        alert(this);      },true);   },false);

冒泡就是对于不同的dom对象,如果添加了同一个类型的事件,从内到外的顺序执行事件,div先执行,document后执行。捕获是从外到内的顺序执行事件。document 先执行,div后执行。
IE自带的添加删除事件方法
attachEvent detachEvent

window.attachEvent('onload',function(){   alert('le');//最后执行的代码}};window.attachEvent('onload',function(){   alert('la');//最先执行的代码}}

 

添加多个事件函数执行顺序和其它现代方法不一样,她是从下到上执行。
只能冒泡,不能判断重复添加的事件函数,不能传递this指针,指针默认指向window

解决方案:获取点击事件指针
var that=window.event.srcElement;
ie现代事件绑定方法可以将事件作为参数传递进去,传统方法不能把事件作为函数参数传递。

window.attachEvent('onload',function(evt){   alert(evt);}};


ie和其他浏览器添加事件移除事件捕获事件对象的兼容性解决

//添加事件兼容性解决

function addEvent(obj,type,fn){ if(obj.addEventListener) obj.addEventListener(type,fn,false); else if(obj.attachEvent) obj.attachEvent('on'+type,fn); }
//移除事件兼容 function removeEvent(obj,type,fn) { if(obj.removeEventListener) obj.removeEventListener(type,fn,false); else if(obj.detachEvent) obj.detachEvent('on'+type,fn); } //获取目标事件 function getTarget(e){ if(e.target) return e.target; else if(window.event.srcElement) return e.srcElement; }

 


甘肃旅游报价价格甘肃旅游景点推荐甘肃旅游团报价甘肃旅游团购优惠甘肃旅游线路报价捆绑搭售20元意外险 携程、去哪儿被指太“霸道” 春节前机票价格上涨一至两成 大量"回笼"火车票出现 韩国旅游收入创历史新高 中国游客消费功不可没 热带天堂森林公园2015元旦涨价吗?亚龙湾热带天堂森林公园元旦好玩吗? 阳朔菩萨水岩几点开门?菩萨水岩游玩需要多长时间? 阳朔菩萨水岩电话预约?菩萨水岩预约优惠多少? 天露山禅龙峡度假区游玩攻略?禅龙峡游玩项目有哪些? 天露山禅龙峡野战怎么玩?新兴天露山禅龙峡漂流野战费用? 便宜坊:蔬香酥烤鸭 组图:漫步京西古道 探寻被遗忘的西峰寺八景 悦筵:澳洲椰丝巧克力蛋糕 配椰汁奶油酱 北京西山:一片“学院派”风景(图) 香港哪里买的玉好? 香港九龙迪生名牌特卖怎么去? 香港深水埗怎么去?香港深水埗卖什么的? 香港去哪里买的包包好?香港去哪里买的包包好看? 552-0001-804 Datasheet 552-0001-804 Datasheet 552-0001-804F Datasheet 552-0001-804F Datasheet 552-0001-805 Datasheet 552-0001-805 Datasheet 吉林跟团到香港旅游 吉林跟团到香港旅游 吉林跟团到香港旅游 黑龙江跟团港澳游 黑龙江跟团港澳游 黑龙江跟团港澳游 黑龙江跟团到香港旅游 黑龙江跟团到香港旅游 黑龙江跟团到香港旅游