我的事件处理程序是在事件被激发之前执行的,为什么

My event handler is executed before the event is fired, why?

本文关键字:执行 为什么 程序 事件处理 事件 我的      更新时间:2023-09-26

我有一个带按钮的弹出窗口。当我点击按钮时,我希望发生一些事情,比如说警报。

我遇到的问题是,一旦弹出窗口启动,onclick事件就会触发,而不是在单击按钮时。

这是代码。任何想法都将不胜感激。

var popup = open("", "Popup", "width=300,height=200");
var btn = popup.document.createElement("button");
btn.style.height = "50px";
btn.style.width = "150px";
popup.document.body.appendChild(btn);
btn.innerHTML="button1";
btn.onclick = alert("hello");

在您的代码中

btn.onclick = alert("hello");

onclick没有被解雇。仅alert被立即执行。你应该把它包装成一个函数:

btn.onclick = function(){ alert("hello");}

为btn.onclick事件分配函数。