jQuery,从函数外部获取变量

时间:2011-09-01 08:28:42

标签: jquery variables

我有以下jQuery示例:

$('li.mega').mouseover(function() {
    var megaTrue = 1;
});

$('li.mega').mouseout(function() {
    var megaTrue = 0;
});

而不是

function functionName() {

        if( megaTrue == 1 ) {

             //do something

        } else {

            //do nothing
            return false;   

        }               
    }

但是megaTrue将是未定义的,jQuery中是否有类似GLOBAL变量的东西?

所有建议都非常感谢。

2 个答案:

答案 0 :(得分:2)

var megaTrue=0; 
$('li.mega').mouseover(function() { 
    megaTrue = 1; 
}); 

$('li.mega').mouseout(function() { 
    megaTrue = 0; 
}); 

将megaTrue设置为全局变量

答案 1 :(得分:1)

你可以,但是使用全局变量很少是一个好主意:这在Javascript和任何地方都是如此。存储数据的语义,有意义的地方是元素本身。 jQuery使用data方法支持此功能:

$('li.mega').mouseover(function() {
    $(this).data('mousedOver', true);
}).mouseout(function() {
    $(this).data('mousedOver', false);
});

如果您有许多li.mega元素并且您不关心哪一个被鼠标悬停,您可以在父元素上设置值:

$('li.mega').mouseover(function() {
    $(this).parent().data('mousedOver', true);
}).mouseout(function() {
    $(this).parent().data('mousedOver', false);
});

抱歉,错过了关键步骤:检查值。然后,您可以使用data方法从元素中获取值,如下所示:

if ($('li.mega').data('mousedOver')) {