Javascript 单击事件';不要系在按钮上

Javascript 单击事件';不要系在按钮上,javascript,Javascript,我需要在按钮标签上附加一个点击事件。我试过addEventLister,但还是不行 widget.innerHTML = "<button id=\"w_btn\">do action</button>"; w_btn = document.getElementById("w_btn"); w_btn.addEventListener("click", function() { alert("sdf"); } ); widget.i

我需要在
按钮
标签上附加一个点击事件。我试过addEventLister,但还是不行

widget.innerHTML = "<button id=\"w_btn\">do action</button>";

w_btn = document.getElementById("w_btn");

w_btn.addEventListener("click", 
    function() {
        alert("sdf");
    }
);
widget.innerHTML=“执行操作”;
w_btn=document.getElementById(“w_btn”);
w_btn.addEventListener(“单击”,
函数(){
警报(“sdf”);
}
);

嗯。我给你做了一个JSFIDLE,在这里:。使用“真实”按钮是可行的。您可能遇到了DOM问题。如果我发现有什么更有用的,请告诉你


编辑:嗯,甚至动态添加按钮对我来说也很有效。元素的命名是否正确?(注意更新的JSFIDLE链接-已更新标记)。

嗯。我为您制作了一个JSFIDLE,这里:。使用“真实”按钮是可行的。您可能遇到了DOM问题。如果我发现有什么更有用的,请告诉你

编辑:嗯,甚至动态添加按钮对我来说也很有效。元素的命名是否正确?(注意更新的JSFIDLE链接-已更新标记)。

第三个可选链接在某些浏览器中。
以下代码应该适用于每一款像样的浏览器(fiddle:):

最后一种可能是你处于严格模式。在严格模式下,禁止使用未声明的变量

第三个可选选项在某些浏览器中。
以下代码应该适用于每一款像样的浏览器(fiddle:):


最后一种可能是你处于严格模式。在严格模式下,禁止使用未声明的变量

您习惯使用ActionScript吗?因为我认为addEventListener在JS中不起作用。@Fredy31这是不正确的。这似乎很好:您是否忘记在问题中包含其他代码?
widget
在哪里定义?@Neal取决于浏览器AFAIK-它在IE9中,但不是更早的版本。@Neal,对不起,我刚从学校毕业,从未见过JS中使用addEventListener。你习惯ActionScript吗?因为我认为addEventListener在JS中不起作用。@Fredy31这是不正确的。这似乎很好:您是否忘记在问题中包含其他代码?
widget
在哪里定义?@Neal取决于浏览器AFAIK-它在IE9中,但不是更早的版本。@Neal,对不起,我刚从学校毕业,从未见过JS中使用addEventListener。我在FF、Chrome和IE9上使用它,没有第三个可选参数…@Thiagosanto旧版本的FF需要第三个参数。我听了一些可能导致问题的原因。最后一个选项似乎很有可能。我在FF、Chrome和IE9上使用了这个选项,但没有第三个可选参数…@ThiagoSantos FF的旧版本需要第三个参数。我听了一些可能导致问题的原因。最后一种选择似乎是可能的。
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
);
var w_btn = widget.firstChild;