gpt4 book ai didi

javascript - 我可以在处理事件时依赖 attach order 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:45 28 4
gpt4 key购买 nike

据我所知,在纯 W3C 事件模型(即使用 addEventListener)中,无法保证事件处理程序将按照附加的顺序被调用。

jQuery 事件模型呢?我可以依赖附加事件的顺序吗?回答时要小心,因为实际上这里可以有三个选项,而不是两个:

  • 您不能依赖附加事件的顺序,正如您从 jQuery 代码中看到的那样。
  • 您可以依赖在当前实现中附加事件的顺序,但实际上,没有人向您保证将来会始终支持这一点,因为保留顺序实际上是无意的。
  • 您可以依赖附加事件的顺序 - 这是自愿实现的,很可能会永远伴随我们,因为它很直观,可以帮助我们使用一些常见的模式,例如资源预初始化等。

最佳答案

如果您通过 jQuery 附加处理程序,它们将按照附加的顺序被触发。这记录在 bind method 上:

When an event reaches an element, all handlers bound to that event type for the element are fired. If there are multiple handlers registered, they will always execute in the order in which they were bound. After all handlers have executed, the event continues along the normal event propagation path.

您是对的,DOM 事件规范没有为事件处理程序定义任何顺序 (link),事实上大多数浏览器以一种方式执行,IE 以另一种方式执行。保证顺序是 jQuery 为您做的事情(通过为每个元素的每个事件附加一个处理程序——它自己的——然后自己分派(dispatch)给通过 jQuery 附加的真实处理程序)。自然地,这意味着 jQuery 附加处理程序被调用的顺序,作为一个 block ,相对于以另一种方式附加的处理程序没有定义。

关于javascript - 我可以在处理事件时依赖 attach order 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8925498/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com