javascript - 在 addeventlistener- javascript 中传递参数

标签 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(???));
}

我应该写什么来代替问号?

最佳答案

无需通过 function 传递任何内容。默认 this 是绑定(bind)在函数中的。只需在函数内调用 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>

关于javascript - 在 addeventlistener- javascript 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45049008/

相关文章:

javascript - 回合制游戏如何在2个玩家之间切换

javascript - 奇怪的 JavaScript 行为,不计算明显的结果

javascript - 反向代理 nginx 没有那个文件或目录

javascript - CodeMirror:捕捉回车键防止换行

Javascript:如何使用 jQuery 在运行时在 HTML 中的可变数量标签上添加文本

javascript - 当 div ID 位于窗口顶部时有条件的 addEventListener

javascript - Eloquent JavaScript 中的removeEventListener 示例

javascript - 如何使用Vanilla JavaScript自动播放下一首歌

javascript - 具有嵌套元素的根元素上的事件冒泡和捕获

javascript - 由于帧导致的 addEventListener 内存泄漏