我需要在 button
标记上附加一个点击事件。我尝试过 addEventLister,但仍然不起作用。
widget.innerHTML = "<button id=\"w_btn\">do action</button>";
w_btn = document.getElementById("w_btn");
w_btn.addEventListener("click",
function() {
alert("sdf");
}
);
最佳答案
第三个可选是 required在某些浏览器中。
以下代码应该适用于所有合适的浏览器( fiddle : http://jsfiddle.net/5hnPP/2/ ):
var widget = document.getElementById("widget");
widget.innerHTML = "<button id=\"w_btn\">do action</button>";
var w_btn = document.getElementById("w_btn"); //Added var
w_btn.addEventListener("click",
function() {alert("test")},
false
);
另一个可能的原因是存在另一个 ID 为 w_btn
的元素,该元素出现在 #widget
元素之前。要解决这个问题,您可以调整代码。由于您覆盖了 #widget
元素的内容,因此第一个也是唯一的内容是按钮。定义:
var w_btn = widget.firstChild;
最后一种可能是您处于严格模式。在严格模式下,禁止使用未声明的变量。
关于javascript - 点击事件未附加到按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8302758/