http://jsbin.com/werexoxeqe/e...
为什么使用addEvent或者attachEvent绑定的函数会自执行?直接使用onclick绑定的事件不会执行??
大家讲道理2017-04-11 10:27:06
call
会立即执行,用bind
就ok了。改成这样咯
addEvent(document.querySelector('.icon-bofang'),'click',xxx.bind(obj))
document.querySelector('.icon-bofang').onclick = xxx.bind(obj)
伊谢尔伦2017-04-11 10:27:06
首先,addEvent这是一个人为封装的方法:
然后你调用了这个方法
addEvent(document.querySelector('.icon-bofang'),'click',xxx.call(obj))
这个方法实际上做的事是:
ele["on"+event]=fn;
也就是
document.querySelector('.icon-bofang').onclick=xxx.call(obj);
这不就直接执行了么?
更简单一点,你直接试试这句:
document.querySelector('.icon-bofang').onclick=console.log('我立马就执行了');
看出来了么?
下面这句外面套了个匿名函数,而匿名函数没有被立即执行!
document.querySelector('.icon-bofang').onclick=function(){
console.log('哥点击后才执行');
}
OVER~
**
**
addEvent(document.querySelector('.icon-bofang'), 'click', function() {
xxx.call(obj);
});