Задержка между выполнением функций Jquery - PullRequest
0 голосов
/ 13 ноября 2011

На моей странице 2 кнопки: #signin and #signup.Функции кликов для них выглядят как код ниже.Проблема в том, что когда вы постоянно нажимаете на них, появляется большая задержка между выполнением функций.Можно ли выполнить их одновременно?

var counter = 0,signin = $("#signin"), signup = $("#signup"), signin_f = $("#signin_form"), holder = $("#holder"), signup_f = $("#signup_form"), f_container = $("#form_container"); 
$(".button").click(function () {
        if (counter === 0) {
            signin.removeClass('default_radius').addClass('right_radius');
            signup.removeClass('default_radius').addClass('left_radius');
            $("#first").animate({
                marginTop: "-=150px",
            }, 500);
        }

    });

    $("#signup").click(function () {
        if (counter === 0) {
           holder.addClass('red_border').height(275).slideDown("slow");
           f_container.show();
           signup_f.fadeIn(1200);
        } else {
           holder.animate({height:"275"},1000).switchClass( "green_border", "red_border", 1000 );
           signin_f.fadeOut(500);      
           f_container.animate({height:"260"},1000);
           signup_f.fadeIn(1000);
        }
        counter++;
    });

    $("#signin").click(function () {
        if (counter === 0) {
            holder.addClass('green_border').height(125).slideDown("slow");
            f_container.show();
            signin_f.fadeIn(1200);
        } else {
           holder.animate({height:"125"},1000).switchClass( "red_border", "green_border", 500 );
           signup_f.fadeOut(500);                        
           f_container.animate({height:"110"},1000);           
           signin_f.fadeIn(1200);

        }

        counter++;
    });

Вы можете увидеть код в действии здесь: http://tural.no -ip.org Быстро и непрерывно нажимайте на кнопку, и вы поймете, о чем я говорю.Внешний файл js: first.js.

1 Ответ

3 голосов
/ 13 ноября 2011

Используйте метод .stop() перед добавлением другой функции fade.Использование:

signin_f.stop(true, true).fadeIn(1200);
//First argument true = Remove queued animations as well
//Second argument true = Immediately finish the current animation
...