有没有办法从事件监听器解析数据到函数?
我有这个:
div.addEventListener('mousedown',run(id),false);
function run(e,id){
console.log(id);
}
事情就是马上执行。另一个问题是 - 如果我想解析变量id
,并且run
函数接收e
事件,你如何解析其他任何东西= /它有点令人困惑找出e
的顺序(在你想要解析的指定变量之前或之后)
到目前为止,当前的工作是将id
分配给窗口,因此它基本上是全局的......但我想知道是否可以通过事件进行解析?
答案 0 :(得分:0)
一种方法是创建一个新的侦听器函数,其中id
变量已经绑定到您想要的值,如下所示:
function newListener(id) {
var listener = function(e) {
console.log(id);
}
return listener;
}
div.addEventListener('mousedown',newListener(id),false);
newListener(id)
定义了一个新函数,其中id
变量当时具有的值在该函数内可用。然后,当按下鼠标按钮时,javascript环境将调用 函数。
答案 1 :(得分:0)
事件处理程序不直接接受参数,您正在调用函数run(id),而不是传递处理程序,这是您传递它的方式(使用匿名函数)
https://developer.mozilla.org/en/docs/DOM/element.addEventListener
div.addEventListener('mousedown',function(e){
doSomething(id);
},false);
function doSomething(id){
console.log(id);
}