Element.fire - Prototype JavaScript 框架

Xunxin Prototype API

fire
1.6.0

fire(eventName[, memo]) -> Event

在当前元素上触发一个自定义事件。

Element#fire 创建一个具有指定名称的自定义事件,然后在当前元素上触发。自定义事件与原生事件具有完全相同的属性和方法。 类似于原生事件,它也会在 DOM 中冒泡传递,除非传递被显式禁止。

第二个参数是可选的,它会被赋给事件对象的 memo 属性,以便在事件处理程序中能够读取到这个值。

自定义事件是同步分派的:Element#fire 会等待事件生命周期结束,然后返回事件本身。

注意

Element#fire 不支持原生的事件。所有自定义事件的名称 必须 具有限定名(使用冒号分隔,如 MyEvent:disable),这是为了避免自定义事件与非标准的原生 DOM 事件(如 mousewheelDOMMouseScroll)名称发生冲突。

样例

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 属性判断事件是否已被停用。