我试图了解自定义事件。我了解如何注册和触发自定义事件。但是,似乎不可能注册真正的自定义事件。一切都必须追溯到 DOM 事件,例如 click、onload、blur 等。还是我错了?
例如,假设我有一个数组。我想注册一个在数组长度更改时触发的事件。据我了解,我必须注册该事件,然后创建一个 setInterval 计时器来检查当前数组长度与先前存储的长度。如果长度发生了变化,我需要从 setInterval 内部触发我的自定义事件。
有没有办法为我的数组注册一个事件并在长度改变时自动触发它?
我试图了解自定义事件。我了解如何注册和触发自定义事件。但是,似乎不可能注册真正的自定义事件。一切都必须追溯到 DOM 事件,例如 click、onload、blur 等。还是我错了?
例如,假设我有一个数组。我想注册一个在数组长度更改时触发的事件。据我了解,我必须注册该事件,然后创建一个 setInterval 计时器来检查当前数组长度与先前存储的长度。如果长度发生了变化,我需要从 setInterval 内部触发我的自定义事件。
有没有办法为我的数组注册一个事件并在长度改变时自动触发它?
自定义事件在W3C 规范中,但没有一个主流浏览器支持它们。这就是为什么其他几个用户建议使用 3rd 方库的原因。Prototype、YUI、JQuery 和其他大多数都具有这些功能。你也可以自己滚。
如果您想了解一些自定义事件语法可能是什么样子,您可以查看本教程的原型自定义事件。一些重要的点:
prefix:event
语法中才能触发memo
参数,该参数允许任意上下文或一组对象随事件冒泡。你为什么不为你的数组编写一个方法 addElement ,只要你想插入元素,你就可以使用它,这样你就可以在 array.length 发生变化时编写代码。与 removeElement 相同。事件不应该用于这种事情。