我应该停止使用HTML事件处理程序属性并一直使用addEventListener()
吗?
例子:
<button id="mybutton">Click me</button>
<script>
var b = document.getElementById("mybutton");
b.onclick = function() { alert("Thanks for clicking me!"); };
b.addEventListener("click", function() { alert("Thanks again!"); }, false);
</script>
我的意思是我应该停止使用onclick
,onchange
等,并开始使用addEventListener()
呢?
“应该”会导致基于意见的答案。:-)
客观地讲,使用的优势在于addEventListener
:
同一元素上的同一事件可以有多个处理程序。
您可以更有效地将JavaScript与HTML分离。仍然存在通过结构选择器或其他选择器间接地找到元素的耦合,但是至少HTML不再对JavaScript有任何了解。通过在HTML和JavaScript之间定义契约(例如,需要添加内容的按钮具有一个add-btn
类或类似的类),您可以让不同的团队来处理HTML和JavaScript,而无需了解更多契约。
缺点是,除非您使用一个为您抽象化浏览器差异的库,否则您就可以忽略IE8(并且仍被大量人使用IE8(截至2013年11月,Net Applications占21.7%;Stat Counter表示8.65)。 % ],只有利基网站可以忽略它),您必须自己处理addEventListener
/attachEvent
麻烦。这很简单,hookEvent
您可以使用一个功能或类似功能,但这是一个缺点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句