为什么addEventListener没有点击却自己执行了?

我用addEventListener给所有<a>tag加上click属性和一个function做handler,但是为什么测试的时候我并没有click,handler就已经自己触发?


var els = document.getElementsByTagName("a");


for(var i = 0; i< els.length;i++){

  console.log(els[i].innerHTML);

  els[i].addEventListener("click",myFunction(els.innerHTML));

}


function myFunction(x){

  console.log(x);

  document.getElementById('demo').innerHTML=x;//我还没有click就已经运行这一行了

}


拉丁的传说
浏览 675回答 1
1回答

白猪掌柜的

绑定的时候myFunction(els.innerHTML)就已经自己执行了,如以下代码改进:var els = document.getElementsByTagName("a");for(var i = 0; i< els.length;i++){&nbsp; console.log(els[i].innerHTML);&nbsp; els[i].addEventListener("click",myFunction);}function myFunction(e){&nbsp; document.getElementById('demo').innerHTML=e.target.innerHtml;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript