2016-02-19 89 views
1

我是jQuery的新手,我知道這可能是非常容易的。我想從事件中的回調函數返回值。代碼是在這裏:從回調函數獲取返回值-JQuery

$('.hintItem').on('mouseenter', function(e){ 
    changeItemStyle(e); 
    var hintItemIndex = $(this).index(); 
    return hintItemIndex; 
}); 

我想抓住hintItemIndex的值並將其存儲到一個新的變量。任何人都可以幫助我嗎?

+3

這不是jquery回調工作的方式(你無法獲得返回值),解釋你的用例,也許我們可以建議一種替代方法。 –

+0

什麼阻止你將它存儲在變量中?這與返回值有什麼關係? – Amit

回答

2

嘗試這種情況:

var hintItemIndex; 
$('.hintItem').on('mouseenter', function(e){ 
    changeItemStyle(e); 
    hintItemIndex = $(this).index(); 
}); 

基本上,你定義機能的研究以外的變量,並通過函數值分配給它。

+0

小心在mouseenter事件發生前訪問變量 – vinayakj

+0

True @vinayakj,我絕對同意。因爲我認爲這不在OP的範圍之內,所以我沒有這樣做。我是不是該? –

+0

它確定,只是想警告OP,因爲OP似乎沒有多少回調經驗。答案是正確的,我已經給+1了。 – vinayakj

0

請嘗試以下功能。

function getHintItemIndex() { 
    var retVal; 
    $('.hintItem').on('mouseenter', function(e){ 
    changeItemStyle(e); 
    var hintItemIndex = $(this).index(); 
    return hintItemIndex; 
    }); 
    return retval; 
} 

var retVal = getHintItemIndex();