2013-02-17 56 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();

相关问题