Javascript onclick事件声明

Javascript onclick事件声明,javascript,Javascript,我正要在javascript中为我的元素设置onclick事件,但我想知道这两个选项中哪一个更有效: document.getElementById(myid).onclick = function(e){...} 或 有什么区别吗?其中一个声明的处理速度是否较慢?建议您使用它,而不是绑定到OnClick 至于效率,我不知道你在担心什么。如果你使用的是document.body.onclick=function(e){If(e.target.id==myid)…}你在听所有的鼠标点击,包括按钮

我正要在javascript中为我的元素设置onclick事件,但我想知道这两个选项中哪一个更有效:

document.getElementById(myid).onclick = function(e){...}


有什么区别吗?其中一个声明的处理速度是否较慢?

建议您使用它,而不是绑定到OnClick


至于效率,我不知道你在担心什么。如果你使用的是
document.body.onclick=function(e){If(e.target.id==myid)…}
你在听所有的鼠标点击,包括按钮、链接、ecc和ecc。这可能会降低您的网站速度(尤其是在移动设备或旧电脑上)


使用
document.getElementById(myid).onclick=function(e){…}
不错,但我建议您使用
document.getElementById('…').addEventListener(“事件”,function(event){…})

在什么意义上有效?第二种需要更多的时间来打字,因此,从这个意义上讲,它的效率较低。第一个更快……您将关注的ID归零,并且没有条件语句来检测像in选项一样的ID#2@TheOneandOnlyChemistryBlob你能在测试中证明这一点吗?当然……继续使用jsperf…@SaintLouisFella记住效率是很好的,因为从长远来看你会将创建代码,您(正如jQuery所说)“写得少,做得多”,但请记住TJHeuvel是正确的,您从这些微优化中获得的收益将非常小……为了获得更大的速度收益,最小化查询,使用后代选择器,尽可能使用css等等
document.body.onclick = function(e){if(e.target.id == myid)...}