Используя jQuery, как отключить эффект щелчка на текущей вкладке? - PullRequest
6 голосов
/ 04 ноября 2008

У меня есть меню с анимацией, но я хочу отключить щелчок во время анимации.

<div></div>
<div></div>
<div></div>

$("div").click(function() { 
  $(this).animate({height: "200px"}, 2000); 
  return false;
});

Тем не менее, я хочу отключить все кнопки во время события, И отключить div, который был нажат.

Я думал о добавлении класса в div, по которому щелкали, и размещении клика только по элементам div без этого класса:

$("div").not("clicked").click(function() { 
  $(this).animate({height: "200px"}, 2000).addClass("clicked"); 
  return false;
});

Но, похоже, это не работает (я думаю, это логично)?

Любая помощь приветствуется.

Приветствия,
Стив

Ответы [ 3 ]

15 голосов
/ 04 ноября 2008
$("div").click(function() {
    if (!$(this).parent().children().is(':animated')) {
        $(this).animate({height: "200px"}, 2000); 
    }
    return false;
});
0 голосов
/ 05 ноября 2008

Как оставить отключенным

отключенным после анимации? Я добавил класс в div, на который щелкнули, но выполнение следующего не работает:
<div></div>
<div class="active"></div>
<div></div>

$("div").not('active').click(function() {
  if (!$(this).parent().children().is(':animated')) {
    $(this).animate({height: "200px"}, 2000); 
  }
  return false;
});

Я подозреваю, что что-то упустил из-за того, как не работает.

0 голосов
/ 04 ноября 2008

Вы могли бы сделать что-то вроде этого ...

$(function() {          
    $("div").click(function() {                 

        //check to see if any of the divs are animating
        if ($("div").is(":animated")) { 
            alert("busy"); 
            return; 
        }

        //whatever your animation is        
        var div = $(this);
        div.slideUp(3000, function(){ div.slideDown(1000); });

    });

});

Это оживит щелчок, пока какой-либо div в данный момент не анимируется. Я, скорее всего, помещаю все эти div в контейнер, а не просто ссылаюсь на div, так как это может повлиять на страницу гораздо больше, чем просто на ваше меню,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...