为简化起见,我想在按钮中添加一个说 hello 的事件:
var b= document.getElementById("palabras");
function fun2(){
alert("hello");
}
function e(func){
b.window[func]("click", fun2);
}
e("addEventListener");

<button id="palabras">words</button>
&#13;
Uncaught TypeError: Cannot read property 'addEventListener' of undefined
答案 0 :(得分:1)
需要将事件侦听器添加到元素中,而不是b['window']
。
更改
b.window[func]("click", fun2);
到
b[func]("click", fun2);
<强>演示:强>
var b= document.getElementById("palabras");
function fun2(){
alert("hello");
}
function e(func){
b[func]("click", fun2);
}
e("addEventListener");
<button id="palabras">words</button>
答案 1 :(得分:0)
您不需要添加window
,请检查工作代码 -
<script>
var b= window.document.getElementById("palabras");
console.log(b);
function fun2(){
alert("hello");
}
function e(func){
b[func]("click", fun2);
}
e("addEventListener");
</script>
如果您控制document.getElementById("palabras");
它将控制目标,那么您需要addEventListner
,因此不需要window
,只需使用b[func]("click", fun2);
。