fire1.6.0
fire(eventName[, memo]) -> Event
在当前元素上触发一个自定义事件。
Element#fire
创建一个具有指定名称的自定义事件,然后在当前元素上触发。自定义事件与原生事件具有完全相同的属性和方法。
类似于原生事件,它也会在 DOM 中冒泡传递,除非传递被显式禁止。
第二个参数是可选的,它会被赋给事件对象的 memo
属性,以便在事件处理程序中能够读取到这个值。
自定义事件是同步分派的:Element#fire
会等待事件生命周期结束,然后返回事件本身。
注意
Element#fire
不支持原生的事件。所有自定义事件的名称 必须 具有限定名(使用冒号分隔,如
MyEvent:disable),这是为了避免自定义事件与非标准的原生 DOM 事件(如 mousewheel
和
DOMMouseScroll
)名称发生冲突。
样例
document.observe("widget:frobbed", function(event) {
console.log("Element with ID (" + event.target.id + ") frobbed widget #" + event.memo.widgetNumber + ".");
});
var someNode = $('foo');
someNode.fire("widget:frobbed", { widgetNumber: 19 });
//-> "Element with ID (foo) frobbed widget #19."
小提示
调用 Event#stop
后,事件的 stopped
属性将会被设置为 true
。
因为 Element#fire
返回自定义的事件,所以可以检测事件的 stopped
属性判断事件是否已被停用。