Javascript - 试图围绕自定义事件

时间:2009-02-20 06:18:30

标签: javascript javascript-events

我正试图了解自定义事件。我了解如何注册和触发自定义事件。但是,似乎无法注册真正的自定义事件。一切都必须追溯到DOM事件,如点击,上传,模糊等。或者我错了吗?

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

有没有办法为我的数组注册一个事件,并在长度发生变化时自动激活?

2 个答案:

答案 0 :(得分:3)

自定义事件位于W3C spec,但主流浏览器都不支持它们。这就是为什么其他几个用户建议使用第三方库的原因。 Prototype,YUI,JQuery和其他大多数人都具备这些功能。您还可以roll your own

如果您想查看某些自定义事件语法的外观,可以查看this tutorial for Prototype custom events。一些要点:

  • 原型自定义事件必须附加到DOM元素,以便它们可以像本机事件一样冒泡。
  • 它们必须采用prefix:event语法才能触发
  • 它们可以包含一个非常有用的memo参数,该参数允许任意上下文或一组对象与事件一起冒泡。

答案 1 :(得分:2)

为什么不为数组编写一个方法addElement,只要你想插入元素就可以使用它,这样你就可以在array.length更改的情况下编写代码。 与removeElement相同的事情。 事件并不意味着用于此类事情。