Javascript dispatchEvent - 为什么需要?

use*_*809 2 javascript dom-events

我有编写的代码:

window.addEventListener("orientationchange", function() {
    //code here;
}, false);
Run Code Online (Sandbox Code Playgroud)

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

elem.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

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

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

非常需要任何帮助.

lem*_*ter 5

addEventListener说,在对象上(window在你的例子中)你想要在对象调度和具有给定类型的事件时做出反应(例如orientationchange)

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

dispatchEvent如果你想发送或触发事件,你会打电话.在内部,只要用户旋转设备,浏览器就会执行此操作,这会触发orientationchange.在此特定示例中,除非您需要进行测试,否则无需手动触发此操作.

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

以下是有关DOM和JavaScript事件的更多信息,http://www.w3schools.com/jsref/dom_obj_event.asp.