5

我正在重写几年前创建的网站的代码,我想知道处理元素上的点击事件的最有效方法是什么?

我有一个带有编辑链接的项目列表,它们都是用onclick="..."HTML 属性编写的。那样更好还是我应该使用$.bind()addEventListener处理它?最佳做法是什么?

4

3 回答 3

2

使用所谓的unobtrusive javascript被认为是最佳实践。这意味着您将 HTML 的布局与元素的行为分开。因此,不是使用混合元素结构和行为的 onclick 属性,而是在标记中布局 DOM 结构,然后通过 javascript 附加事件处理程序。

这意味着使用 javascript 附加事件处理程序被认为是最佳实践,如下所示:

<html>
   <script>
        ... bind event handlers to your DOM and set behaviours here
   </script>
   <body>
       .... layout your DOM here
    </body>
<html>

这对于长期代码的可维护性和可扩展性具有优势。这种方法非常适用于 jQuery 等 javascript 库。

在性能方面,您可以通过使用智能缓存策略通过不显眼的 javascript 方法获得性能提升。

有关不显眼的 javascript 的更多信息,请参见此处

于 2013-01-27T22:08:12.480 回答
1

addEventListener或者它的 jQuery 版本on\bind是最佳实践,因为它将可视部分 HTML 与功能部分 javascript 分开。

分道扬镳

如果代码已经写好了,我不会改变它,这并不重要。

于 2013-01-27T22:02:31.430 回答
1

很多人会不鼓励使用,onclick因为“如果你想添加另一个 onclick 事件怎么办?” - 就我个人而言,我从来没有遇到过这个问题,但我可以理解。

如果您没有将链接用于单个click事件以外的任何内容,那么onclick很好。但是,如果您希望它是防弹的,您可能需要addEventListener. 我实际上有我自己的addEvent/ fireEvent/removeEvent三个函数来跟踪事件并为我处理浏览器的不一致(window.event例如,引入),而且效果很好。

于 2013-01-27T22:03:18.607 回答