JQuery аккордеон не может отключить щелчок при анимации? - PullRequest
0 голосов
/ 23 июня 2010

Я пытаюсь разработать аккордеон jQuery, который работает довольно хорошо, учитывая, что я действительно не знаю jQuery.

Основная проблема, с которой я столкнулся, заключается в том, что если вы достаточно быстро нажмете на разных участках, это будет равномерно выбивать весь аккордеон на короткое время, что на самом деле будет недостаточно.

Я пытался поставить

if ($ ("# accordion ul li"). Is (': animated')) {

вокруг функции щелчка, но, похоже, ничего не делает, может кто-нибудь протянуть мне руку помощи или сказать, если это возможно?

Также вы заметите, что при нажатии правая сторона аккордеона немного сжимается, это поправимо или мне просто придется с этим мириться?

Вы можете посмотреть, что я имею в виду здесь http://dev.boomeranginternet.co.uk/accordion/accordion1.asp

Заранее спасибо за любую помощь.

С уважением, J.

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

Попробуйте что-то вроде этого:

$("#accordion ul li").click(function(){
    if ($(':animated').length) {
        return false;
    }

    //Your code goes here...
});
0 голосов
/ 23 июня 2010

, заключая в себе функцию щелчка, которую вы имеете в виду, как это?

    if ($("#accordion ul li").is(":animated")) { 

    } else {
        $("#accordion ul li").click(function() {
            // do animation
        }):
    }

, что неправильно, функция щелчка определяет обработчик события.если вы хотите, чтобы ваша анимация работала только до тех пор, пока не запущена другая анимация, вы должны проверить ее в обработчике событий, например,

$("#accordion ul li").click(function() {
    if ($("#accordion ul li").is(":not(animated)")) { 
        // do animation
    }
}):
...