2009-09-25 98 views
0

我有這樣的事情:jQuery的:通過這項兒童功能

$('element.selector').live("click", function(){ 
    run_some_func(); 
}); 

$('element.selector2').live("click", function(){ 
    run_some_func(); 
}); 

現在,在功能我需要使用$(本):

function run_some_func() { 
    $(this).show(); 
} 

如何獲得的功能知道$(this)是被單擊的element.selector?

謝謝。

回答

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) 
+0

謝謝,這正是我想學的東西。 – Mark

1

不能傳遞$(這)給你的函數,使得:

$('element.selector').live("click", function(){ 
     run_some_func ($(this)); 
}); 

..然後

run_some_func(obj){ 
    obj.do_something(); 
})