2011-08-01 133 views
2

可能重複:
How do you know when to return false from a jQuery function?jQuery的:返回true或false

我們都有一些jQuery代碼看起來像這樣:

$('#MySelector').somefunction(function() { 

    // do something 

}); 

有什麼好處/包括退貨聲明的懲罰,我們應該返回真假嗎?現在,我會說我的代碼在沒有返回語句的情況下工作正常,但我想知道在我描述的上下文中return語句會做什麼。

感謝您的澄清。

+0

我不知道,'somefunction'做什麼? – BoltClock

+1

*「...在我描述的上下文中。」*您沒有描述任何可知的上下文,除非有一個「somefunction」插件,除了我知道的每個人都知道。 – user113716

回答

1

您將匿名函數作爲參數傳遞給somefunction,所以它確實取決於somefunction對該參數的作用。真正重要的是somefunction返回。例如,讓我們說這是它是如何定義的:

$.fn.somefunction = function (fnParam) { 
    var returnVal = fnParam(); 

    if (returnVal) { 
    // do something 
    } else { 
    // do something else 
    } 

    return this; 
}; 

所以在這裏我們的fnParam的返回值賦值給一個變量,並使用該變量中somefunction確定的行動。 somefunction返回this雖然,這將是它傳遞的jQuery對象(在您的示例$('#MySelector'))。既然你返回thissomefunction可以鏈接與其他jQuery方法,如:

$('#MySelector').somefunction(function(){ // blah }) 
       .css('background','yellow') 
       .appendTo('body') 
       .show(); 
0

在這種情況下,如果你使用

return false; 

它將中止該function(){ }並繼續,如果你想過早和/或如果退出功能的出來可能

0

返回的東西僅僅是有益的需要將函數結果的值賦給變量:

var foo = calculate(1,2); // foo = 3 

function calculate(a,b){ 
    return a+b; 
} 
+0

我想他確實知道你的情況是什麼意思。他想知道在他的CONTEXT $(「body」)的情況下會發生什麼。some(function(){return;}); – genesis

+0

是的,我是這樣認爲的,但無論如何這是一個相當荒謬的問題,所以我不確定;) – AlienWebguy