我有这样的事情:
$('element.selector').live("click", function (){
run_some_func ();
});
$('element.selector2').live("click", function (){
run_some_func ();
});
现在在函数中我需要使用$(this):
function run_some_func () {
$(this).show();
}
如何让函数知道$(this)是被点击的element.selector?
感谢。
答案 0 :(得分:4)
您可以使用call函数更改要执行的函数的上下文(设置this
关键字):
$('element.selector').live("click", function (){
run_some_func.call(this); // change the context of run_some_func
});
function run_some_func () {
// the this keyword will be the element that triggered the event
}
如果你需要将一些参数传递给该函数,你可以:
run_some_func.call(this, arg1, arg2, arg3); // call run_some_func(arg1,arg2,arg3)
// and change the context (this)
答案 1 :(得分:1)
你不能把$(this)传递给你的函数,以便:
$('element.selector').live("click", function (){
run_some_func ($(this));
});
..然后
run_some_func(obj){
obj.do_something();
})