我需要在button
标记上附加点击事件。我已经尝试过addEventLister,但它仍然不起作用。
widget.innerHTML = "<button id=\"w_btn\">do action</button>";
w_btn = document.getElementById("w_btn");
w_btn.addEventListener("click",
function() {
alert("sdf");
}
);
答案 0 :(得分:2)
在某些浏览器中,第三个选项是required 以下代码应该适用于所有体面的浏览器(小提琴: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;
最后一种可能性是你处于严格模式。在严格模式下,使用未声明的变量禁止。
答案 1 :(得分:1)
嗯。我为你做了一个jsFiddle,在这里:http://jsfiddle.net/5hnPP/1/。使用“真实”按钮工作。您可能遇到了DOM问题。如果我找到更有用的东西,请告诉您。
编辑:嗯,即使添加动态按钮也适合我。你正确命名你的元素吗? (注意更新的jsFiddle链接 - 已更新标记)。