function myFunction(par) {
...
}
el1.onclick=myFunction(5);
el2.onclick=myFunction(7);
如何获取myFunction
内的调用者元素的引用?
答案 0 :(得分:3)
在您的示例中,您要将myFunction(5)
的返回值分配给el1.onclick
,并将myFunction(7)
的返回值分配给el2.onclick
。
采用以下示例:
el1.onclick=myFunction(5);
在上面的示例中,执行了myFunction(5)
。然后将该函数的返回值(称为myval)分配给el1.onclick
。这相当于:
var myval = myFunction(5);
el1.onclick = myval;
目前尚不清楚这是否符合您的意图。为此,myFunction的返回值需要是 function (或一串Javascript)才能在以后执行。
在里面函数,你将引用调用者元素。该函数内的this
将返回当前正在调用该事件的元素。
答案 1 :(得分:1)
//这就是说调用这个函数并将它返回到onclick的内容 el1.onclick = myFunction(5);
你想使用一个闭包 el1.onclick = function(){myFunction(5);}
要引用该元素,您可以在
中传递该对象function test(elem, x){
elem.innerHTML = x;
}
document.getElementById("foo").onclick = function(){ test(this, 1); }
或者您可以使用call,以便在侦听器中this
引用该元素。
function test(x){
this.innerHTML = x;
}
document.getElementById("foo").onclick = function(){ test.call(this, 1); }