传递' addEventListener' name作为参数

时间:2016-04-22 17:46:42

标签: javascript

为简化起见,我想在按钮中添加一个说 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;
&#13;
&#13; 控制台中的结果显示为Uncaught TypeError: Cannot read property 'addEventListener' of undefined

2 个答案:

答案 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);