我想知道为什么最好使用观察者而不是直接将动作添加到onclick =“”。
例如
$('mybutton').observe('click', respondToClick);
vs
<a href="#" onclic="respondToClick()">button</a>
由于
答案 0 :(得分:6)
这是一个相当常见的问题,因此我将在quirksmode.org上引用您的quality article来回答这个问题以及您可能对事件处理提出的其他问题。
以下是摘录:
<a href="somewhere.html" onclick="alert('I\'ve been clicked!')">
认识到这一点非常重要 事件处理的古老方式是 事实上由Netscape标准化。所有 其他浏览器,包括Explorer, 不得不顺应Netscape 2的方式 和3个处理事件,如果他们想要 JavaScript工作。因此这些 古代事件和事件处理程序的工作 在所有JavaScript浏览器中。
玩得开心。
答案 1 :(得分:2)
一般来说,大多数人会建议将你的javascript与你的html分开,以便更快地进行html页面渲染。由于跨浏览器与代码
的不兼容性,你必须更加小心第一个答案 2 :(得分:2)
最大的原因是observe
允许您通过JavaScript代码注册和注销多个观察者,而分配给onclick
的灵活性要低得多。
答案 3 :(得分:2)
我的三个主要原因是:
el.onclick = null;
并不总是有用。 IE有一种允许内存泄漏的方法。