jQuery, получить переменную извне функции - PullRequest
1 голос
/ 01 сентября 2011

У меня есть следующий пример 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?

Все предложения очень ценятся.

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011
var megaTrue=0; 
$('li.mega').mouseover(function() { 
    megaTrue = 1; 
}); 

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

установить megaTrue как глобальную переменную

1 голос
/ 01 сентября 2011

Можно, но очень редко стоит использовать глобальные переменные: это верно в 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')) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...