我发现在 JavaScript 中设置事件有两种主要方法:
-
直接在标签内添加一个事件,如下所示:
<a href="" onclick="doFoo()">do foo</a>
-
通过 JavaScript 设置它们,如下所示:
<a id="bar" href="">do bar</a>
并在 a 中添加一个事件<script>
里面的部分<head>
部分或外部 JavaScript 文件中,如果您使用的是这样的原型JS:
Event.observe(window, 'load', function() {
$('bar').observe('click', doBar);
}
我认为第一种方法更容易阅读和维护(因为JavaScript操作直接绑定到链接),但它不是那么干净(因为即使页面没有完全加载,用户也可以点击链接,这可能会导致JavaScript错误在某些情况下)。
第二种方法更干净(当页面完全加载时添加操作),但更难知道操作是否链接到标签。
哪种方法最好?
一个杀手级的答案将不胜感激!
我认为第一种方法更容易阅读和维护
我发现事实恰恰相反。请记住,有时多个事件处理程序将绑定到给定的控件。
在一个中心位置声明所有事件有助于组织站点上发生的操作。如果您需要更改某些内容,则不必搜索调用函数的所有位置,只需在一处进行更改即可。当添加更多应该具有相同功能的元素时,您不必记住向它们添加处理程序;相反,通常让它们声明一个类就足够了,甚至根本不更改它们,因为它们在逻辑上属于一个容器元素,该容器元素的所有子元素都连接到一个操作。从实际代码来看:
$$('#itemlist table th > a').invoke('observe', 'click', performSort);
这将事件处理程序连接到表中的所有列标题以使表可排序。想象一下使所有列标题可单独排序所需的努力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)