假设我有以下内容......
jQuery('#a').click(function(){
myFunction();
});
function myFunction(){
var me = jQuery(this);// this one gets the "window" object instead of "#a" element
}
当我不能发送myFuncton
作为参数时,如何从this
获取启动事件的目标元素,因为它会让我回过头来重新开始检查整个站点并更改每个函数调用参数...
答案 0 :(得分:4)
所以你可以这么做:
$('#a').click(myFunction); // then this in myFunction will be the '#a' element.
的更新强>:的
如果您需要在myFunction以外的回调中执行其他操作,那么您可以尝试.call()
或.apply()
执行具有给定此值的函数。< / p>
$('#a').click(function() {
otherLogic();
myFunction.call(this);
});
答案 1 :(得分:1)
试试这个
jQuery('#a').click(function(){
myFunction(this);
});
function myFunction(elem){
var me = jQuery(elem);
}
当您从click事件
传递函数时,您将获得在elem中调用该函数的当前对象答案 2 :(得分:0)
jQuery('#a').click(function(){
myFunction(this);
});
function myFunction(sender){
if (sender !=undefined)
{
var me = jQuery(sender);// and do other stuff
//.....
}
//do your old stuff -- me will be logically out of scope
}
//this will not result in an error, sender will be undefined
// the code will be compatible backwards
myfunction();