3

我试图了解自定义事件。我了解如何注册和触发自定义事件。但是,似乎不可能注册真正的自定义事件。一切都必须追溯到 DOM 事件,例如 click、onload、blur 等。还是我错了?

例如,假设我有一个数组。我想注册一个在数组长度更改时触发的事件。据我了解,我必须注册该事件,然后创建一个 setInterval 计时器来检查当前数组长度与先前存储的长度。如果长度发生了变化,我需要从 setInterval 内部触发我的自定义事件。

有没有办法为我的数组注册一个事件并在长度改变时自动触发它?

4

2 回答 2

3

自定义事件在W3C 规范中,但没有一个主流浏览器支持它们。这就是为什么其他几个用户建议使用 3rd 方库的原因。Prototype、YUI、JQuery 和其他大多数都具有这些功能。你也可以自己滚

如果您想了解一些自定义事件语法可能是什么样子,您可以查看本教程的原型自定义事件。一些重要的点:

  • 原型自定义事件必须附加到 DOM 元素,以便它们可以像原生事件一样冒泡。
  • 它们必须在prefix:event语法中才能触发
  • 它们可以包含一个非常有用的memo参数,该参数允许任意上下文或一组对象随事件冒泡。
于 2009-05-13T19:29:40.550 回答
2

你为什么不为你的数组编写一个方法 addElement ,只要你想插入元素,你就可以使用它,这样你就可以在 array.length 发生变化时编写代码。与 removeElement 相同。事件不应该用于这种事情。

于 2009-02-20T06:30:31.160 回答