在学习事件添加的时候,使用addEventListener无疑是最好的方式,但是一个很久就思考过的问题,一直没有解决。那就是addEventListener处理函数添加参数怎么办。
我们一般是这样来做的,addEventListener(event,function,boolean);
for(var i=0;i<aDiv.length;i++){
aDiv[i].addEventListener("mouseover",change,false);
}
这样就没有办法传入参数了。
经过查找资料,发现在EcmaScript5中扩展了叫bind的方法(IE6,7,8不支持),可以绑定参数。bind可接受的参数都分为两部分,且第一个参数都是作为执行时函数上下文中的this的对象。
改写为以下代码即可:
for(var i=0;i<aDiv.length;i++){
aDiv[i].addEventListener("mouseover",change.bind(aDiv[i],aDiv[i]),false);
}