Когда вы используете var
для объявления переменной, она становится локальной переменной, что означает, что она является новой в этой области.
Быстрый (и грязный) способ для достижения желаемой целичто-то вроде:
var animate = 0;
$('a').click(function() {
if (animate === 0) {
$('#shadow').fadeOut(500);
animate = 1; // note the lack of "var"
}
});
Обратите внимание, что это, вероятно, довольно несовершенное решение;в частности animate
не устанавливает себя обратно в 0 (вы можете сделать это с помощью функции обратного вызова в качестве второго аргумента для fadeOut
, хотя).
Возможно, еще лучшее решение - это разместить (иудалить) класс для конкретного элемента, с которым вы работаете:
$('a').click(function() {
if (!$('#shadow').hasClass('animating')) {
$('#shadow').addClass('animating').fadeOut(500, function() {
$(this).removeClass('animating');
});
}
});
Однако я не знаю деталей вашей реализации, поэтому я позволю вам выяснить, что подходит именно вам.необходимо.