【问题标题】:How many javascript event handlers is too many? [closed]多少个 javascript 事件处理程序太多了? [关闭]
【发布时间】:2012-11-07 21:43:57
【问题描述】:

我正在编写一个 PHP/jQuery 应用程序,我想知道有多少事件处理程序太多了?

例如,在我的主 .js 文件中,我大约有 15 个

$('body').on('click','.someElementClass',function(){
    someFunction();
});

有没有更好的方法来完成这个/最好的做法是什么?

编辑:上面的“body”只是一个例子,我正在绑定到最深的元素

【问题讨论】:

  • 如果您的 DOM 不会在整个页面加载之间发生变化,$('.someElementClass').click(fn) 会更快。
  • 我来这里问了同样的问题,所以我不同意“封闭为不具建设性”。谢谢你的提问!

标签: javascript jquery javascript-events event-handling


【解决方案1】:

如果您的应用程序符合性能要求 - 那么它不会太多。如果没有——那就太多了。就这么简单。

【讨论】:

    【解决方案2】:

    “有没有更好的方法来完成这个/最好的做法是什么?”

    是的,有更好的方法。现在,您将所有点击活动绑定到单个容器。

    这意味着每次点击页面都需要调用每个.someElementClass,实际上是多次因为事件冒泡。

    正确的方法是将处理程序绑定到包含每个给定选择器的嵌套最深的容器。这样,每个处理程序只会在页面该部分内的点击时被调用。

    “我想知道有多少事件处理程序太多了?”

    这当然取决于应用程序的要求,但使用上述方法可以减少多个处理程序的存在。

    【讨论】:

    • 编辑了我原来的帖子。我绑定到最深的元素,body 只是一个例子。
    • @Nick:那会从根本上改变问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2014-05-05
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多