DaS*_*Sch 4 javascript jquery typescript ecmascript-6
我不知何故发现将事件侦听器添加到文档的行为有点奇怪。虽然向 HTMLElements 添加侦听器工作正常,但向文档添加侦听器不起作用。但奇怪的是,使用 jQuery 使它工作。
那么有人可以解释一下,为什么这两个函数没有做完全相同的事情?
["customEvent1", "customEvent2"].forEach(
(event: string) => {
document.addEventListener(event, () => this.eventHandler());
});
$(document).on("customEvent1 customEvent2", () => this.eventHandler());
Run Code Online (Sandbox Code Playgroud)
编辑:嗯,似乎对环境存在一些误解。
$(document).trigger("customEvent1")
;如果您使用$(document).trigger("customEvent2");
( jquery src/event/trigger.js ),jQuery 不会创建本机事件,它只会模拟本机事件处理。
因此,如果您使用注册事件处理程序,document.addEventListener
则不能$(document).trigger(
用于这些事件。
但是,如果您使用本机代码创建和调度事件:
var event = new Event('customEvent1');
document.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
然后你可以用document.addEventListener
jQuery 和 jQuery来捕获它.on
归档时间: |
|
查看次数: |
1847 次 |
最近记录: |