Javascript dispatchEvent不工作
如演示所示,Javascript dispatchEvent不工作,javascript,javascript-events,Javascript,Javascript Events,如演示所示,dispatchEvent未按预期工作 关键部分: btn.dispatchEvent( document.createEvent("MouseEvent") .initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) ); 加载后1秒后会弹出警报,但不会出现,控制台中会出现错误: U
dispatchEvent
未按预期工作
关键部分:
btn.dispatchEvent(
document.createEvent("MouseEvent")
.initMouseEvent("click", true, true, window, 0,
0, 0, 0, 0,
false, false, false, false,
0, null)
);
加载后1秒后会弹出警报,但不会出现,控制台中会出现错误:
Uncaught InvalidStateError:未能对“EventTarget”执行“dispatchEvent”:提供的事件为空。
我不知道问题出在哪里,因为我发现了一个几乎完全相同的代码,它正在工作,但不是我的
btn.dispatchEvent(
document.createEvent("MouseEvent")
.initMouseEvent("click", true, true, window, 0,
0, 0, 0, 0,
false, false, false, false,
0, null)
);
您的问题是initMouseEvent
不返回任何内容。你不能把所有这些都合并成一行。你需要打破它
var mEvent = document.createEvent("MouseEvent");
mEvent.initMouseEvent("click", true, true, window, 0,
0, 0, 0, 0,
false, false, false, false,
0, null);
btn.dispatchEvent(mEvent);
这是您链接到的演示中的操作方式。这一操作:
var btn = document.querySelector("button");
btn.addEventListener("click", function () {
alert("Clicked.");
});
setTimeout(function () {
var mEvent = document.createEvent("MouseEvent");
mEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
btn.dispatchEvent(mEvent);
}, 1000);
为我工作。在这里使用chrome。@tmckown-这很奇怪,我在Windows上使用chrome 32,但它不工作。对不起,它不会自动弹出。哦,我没有注意到这是问题所在。。。所以我习惯了jQuery,并没有意识到它在原生JS中不是这样工作的。是的,我意识到我不能链接它们。