Javascript dispatchEvent - 为什么需要?

时间:2014-01-13 19:29:27

标签: javascript javascript-events

我有编写的代码:

window.addEventListener("orientationchange", function() {
    //code here;
}, false);

它工作正常......但我被告知要通过Mozilla开发页面添加:

elem.dispatchEvent(event);

任何人都可以告诉我为什么我需要添加调度以及没有它的原因(调度实际上也会非常有用!)。

W3C还建议在规范中删除完成后的事件,但是对于方向更改它可能随时发生,是否可以将其留在那里?

非常需要任何帮助。

2 个答案:

答案 0 :(得分:5)

addEventListener说,在对象(示例中为window)上,您希望在对象调度和具有给定类型的事件时做出反应(例如orientationchange

您正在侦听来自对象的事件。

如果您想发送或触发事件,

dispatchEvent就是您所呼叫的。在内部,只要用户旋转设备,浏览器就会执行此操作,这会触发orientationchange。在此特定示例中,除非您需要进行测试,否则不需要手动触发此操作。

removeEventListener执行您期望的操作,并使其不再监听触发的事件。如果您知道不再需要监听事件或者事件将不再被触发以便您可以释放内存资源,通常这样做很好。对于您的情况,似乎您不需要这样做。

以下是有关DOM and JavaScript Events, http://www.w3schools.com/jsref/dom_obj_event.asp的更多信息。

答案 1 :(得分:2)

发送含义 发送到目的地或用于某个目的。

dispatchEvent是create-init-dispatch流程的最后一步,用于将事件分派到实现的事件模型中。

EventTarget.dispatchEvent

在指定的Event调度EventTarget,以适当的顺序调用受影响的EventListeners。正常事件处理规则(包括捕获和可选冒泡阶段)适用于使用dispatchEvent()

手动分派的事件