2013-02-17 54 views
0

這是對'jQuery output to console sum of 2 variables'問題的擴展。在點擊函數條件語句中調用時函數值未定義

我有以下功能:

function printSum() { 
    console.log('Sum:' + (c.getBehaviour() + t.getBehaviour())); 
} 

,並希望點擊功能內時printSum()值加載HTML依賴像這樣:

$('#surname-help-label').click(function(e) { 
    var helpText = $('#surname-help-text').html('loading…'); 

    if (printSum() >= 25) { 
     helpText.load('help-text.html div:nth-of-type(2)'); 
    } else { 
     helpText.load('help-text.html div:first'); 
     console.log('what do you get:' + printSum()); 
    }; 

    e.preventDefault(); 
}); 

我已經在該行console.log('what do you get:' + printSum());添加用於調試並且它返回的值是undefined,這意味着總是調用else {}塊。我該如何補救?

Full code jsFiddle

回答

3

你沒有任何重新調整。如果你不讓你的函數返回你想要它返回的東西,那麼它將不會返回你想要它返回的東西。

爲了讓它返回,你希望它返回,你需要讓它返回你想要它返回的東西,這樣它會返回你想要它返回的東西,並且你將能夠使用返回的東西。

function printSum() { 
    console.log('Sum:' + (c.getBehaviour() + t.getBehaviour())); 
    return c.getBehaviour() + t.getBehaviour(); 
} 

MDN return statement

+1

你先生,是個狡猾的語言學家;) – DigiKev 2013-02-17 17:03:28

0

不必返回在printsum函數的任何信息。 只需寫在console.log內的printsum函數 return c.getbehaviour()+ t.getbehaviour();

相關問題