1

之前我问过一个关于在页面中嵌入 JS 的问题,而不是将其定位在头部或正文的末尾,将 Javascript 嵌入到文档的正文中?.

我现在的问题是,将 JS 绑定到 HTML DOM 事件的最佳方式是什么?我可以:

  • 等到文档加载完毕,然后运行一个脚本,将函数绑定到所需元素上的所需事件;或者
  • 在我编写 HTML 时将函数直接绑定到 DOM 元素

在某些情况下,我意识到我别无选择,但在简单的情况下,我倾向于选择第二种选择。例如,这是我想初始化我的自动搜索栏的方式:

<input id="auto-search" value="Search for person by name" onfocus="this.value=null"/>

这感觉很自然,但缺点是我的 JS 现在分布在我的 HTML 中,而不是很好地隐藏在单个文件中。你做什么工作?

作为一个长期的方法,我喜欢 RequireJS 的想法,但我还没有准备好去研究它。

4

1 回答 1

1

不像这样内联事件处理程序的一个主要原因是它不能很好地与 jQuery 之类的库一起工作。jQuery 在事件处理方面做了很多很棒的事情;例如,它们标准化了在您的事件处理程序中传递的事件对象,因此无论您的用户使用哪种浏览器,它看起来都是一样的。其他具有事件处理功能的主要库也做类似的事情。

如果您将事件“内联”与 on* 属性挂钩,jQuery(或您使用的任何库)将不会意识到它们,因此将无法规范化事件对象或轻松为您解除绑定事件。

更广泛地说,将 Javascript 保存在 Javascript 文件中具有普遍的好处。并非所有这些都适用于这么小的东西,但作为一般做法,我认为大多数开发人员会建议不要使用 on* 属性。

于 2013-04-13T03:27:07.473 回答