2013-11-20 3 views
0

здесь, добавлены классы и удаляются мой кодФункция «очередь», может ли она быть выполнена только один раз?

$('.project, .list').click(function(){ 
    $(".c3_home").addClass('c3_left2').delay(400).queue(function(){ 
    $(this).addClass('c3_right'); 
}); 
}); 
$('#back').click(function(){ 
    $('.c3_home').removeClass('c3_right c3_left2'); 
}); 

на первых двух кликов, но на третий клик, только c3_left добавляется в то время как c3_right не добавляется.

ответ

0

Вы должны очистить очередь:

$(".c3_home").clearQueue().addClass('c3_left2').delay(400).queue(function(){ 
    $(this).addClass('c3_right'); 
}); 

Вы можете попробовать использовать отделку(): (JQ 1,9>) {который должен очистить все элементы в очереди}

$(".c3_home").finish().addClass('c3_left2').delay(400).queue(function(){ 
    $(this).addClass('c3_right'); 
}); 

Как предложенный Кевином, попробуйте это тоже:

$(".c3_home").addClass('c3_left2').delay(400).queue(function(next){ 
     $(this).addClass('c3_right'); 
     next(); 
    }); 
+0

Интересно, исправит ли это выполнение функции 'next', переданной в обратный вызов очереди. –

+0

@ KevinB было бы более подходящим btw –

Смежные вопросы