2016-02-19 88 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();