我刚刚发现可以通过addEventListener绑定多个参数,这真的很酷。

link通过addEventListener解释了多个参数。

我的问题是我无法正常运行“ e.target.id”?

样本here

的CSS

#element{
    width: 50px;
    height: 50px;
    background-color: red;
}


的HTML

<div id="element">

</div>


Java脚本

document.querySelector("#element").addEventListener('click', toggleMenu.bind(null, "e", "param2"), false);
function toggleMenu(e, param2) {
    alert(e);
    alert(param2);

    alert(e.target.id);
}


通常我会通过做类似的事情来获得ID

document.querySelector("#element2").addEventListener("click", somethings, false);
function somethings(e){
    alert(e.target.id);
}


因此,基本上没有人拥有知识并知道在这种情况下我能做什么:)?

最佳答案

您要绑定字符串吗?您需要做的只是:

document.querySelector("#element")
  .addEventListener('click', e => toggleMenu(e, param2), false);


假设:您在代码的其他地方定义了param2

编辑:

如果仅使用bind需要答案,则可以执行以下操作:

document.querySelector("#element")
  .addEventListener('click', toggleMenu.bind(null, param2), false);

function toggleMenu(param2, e) {
  /*use `e` whichever way you'd like*/
}

09-19 15:19