我正试图了解自定义事件。我了解如何注册和触发自定义事件。但是,似乎无法注册真正的自定义事件。一切都必须追溯到DOM事件,如点击,上传,模糊等。或者我错了吗?
例如,假设我有一个数组。我想注册一个在数组长度发生变化时触发的事件。根据我的理解,我必须注册该事件,然后创建一个setInterval计时器,它根据先前存储的长度检查当前数组长度。如果长度已经改变,那么我需要从setInterval内部触发我的自定义事件。
有没有办法为我的数组注册一个事件,并在长度发生变化时自动激活?
答案 0 :(得分:3)
自定义事件位于W3C spec,但主流浏览器都不支持它们。这就是为什么其他几个用户建议使用第三方库的原因。 Prototype,YUI,JQuery和其他大多数人都具备这些功能。您还可以roll your own。
如果您想查看某些自定义事件语法的外观,可以查看this tutorial for Prototype custom events。一些要点:
prefix:event
语法才能触发memo
参数,该参数允许任意上下文或一组对象与事件一起冒泡。答案 1 :(得分:2)
为什么不为数组编写一个方法addElement,只要你想插入元素就可以使用它,这样你就可以在array.length更改的情况下编写代码。 与removeElement相同的事情。 事件并不意味着用于此类事情。