Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有多个参数和e.target的Eventhandler_Javascript_Html_Css - Fatal编程技术网

Javascript 具有多个参数和e.target的Eventhandler

Javascript 具有多个参数和e.target的Eventhandler,javascript,html,css,Javascript,Html,Css,我刚刚发现可以通过addEventListener绑定多个参数,这非常酷 这将通过addEventListener解释多个参数 我的问题是我不能让“e.target.id”正常工作 样品 CSS HTML 通常我会通过做一些类似的事情来获得身份证 document.querySelector("#element2").addEventListener("click", somethings, false); function somethings(e){ alert(e.target.i

我刚刚发现可以通过addEventListener绑定多个参数,这非常酷

这将通过addEventListener解释多个参数

我的问题是我不能让“e.target.id”正常工作

样品

CSS

HTML

通常我会通过做一些类似的事情来获得身份证

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

那么基本上是否有人掌握了这些知识,并且知道我在这种情况下能做什么:)?

你在绑定一个字符串?您需要做的只是:

document.querySelector("#element")
  .addEventListener('click', e => toggleMenu(e, param2), false);
假设:您在代码的其他地方定义了参数2

编辑: 如果您需要仅使用
bind
的答案,您可以执行以下操作:

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

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

您的事件将是函数处理程序中的最后一个参数,绑定实际上是这样工作的:

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

    alert(event); // Synthetic Mouse Event
}

我现在遇到了一个未定义的变量错误::我找到了一个更简单的方法,但这对向上投票也有帮助,因为它帮助了我:)
document.querySelector(#element”).addEventListener('click',toggleMenu.bind(null,“param2”),false);函数切换菜单(param2,e){e.stopPropagation();警报(e.target.id);}
document.querySelector("#element")
  .addEventListener('click', e => toggleMenu(e, param2), false);
document.querySelector("#element")
  .addEventListener('click', toggleMenu.bind(null, param2), false);

function toggleMenu(param2, e) {
  /*use `e` whichever way you'd like*/
}
document.querySelector("#element").addEventListener('click', toggleMenu.bind(null, "e", "param2"), false);
function toggleMenu(param1, param2, event) {
    alert(param1); // "e"
    alert(param2); // "param2"

    alert(event); // Synthetic Mouse Event
}