在addeventlistener中传递一个参数-javascript

时间:2017-07-12 05:20:37

标签: javascript addeventlistener

我定义了一个改变元素属性的函数 我想在'addEventListener'中向这个函数传递一个参数,这是我的问题。

这是功能:

function collapse (el) {
    var _cl = el.classList;
    _cl.add("box_size1");
    el.removeAttribute("id");
}

这是主要代码:

window.onload = function() {
    var el = document.getElementById("box_size2");
    el.addEventListener("click", collapse(???));
}

我应该写什么而不是问号?

1 个答案:

答案 0 :(得分:2)

不需要传递任何函数。默认this在函数中绑定。在函数内调用this而不是el

window.onload = function() {
var el = document.getElementById("box_size2");
el.addEventListener("click", collapse);
}

function collapse() {
var _cl = this.classList;
_cl.add("box_size1");
this.removeAttribute("id");
console.log(this.outerHTML)
}
<button id="box_size2">click</button>