jQuery fadeIn () fadeOut () проблема синхронизации - PullRequest
2 голосов
/ 24 ноября 2011

У меня есть 6 элементов на моей странице. Номер приоритета отображается рядом с каждым элементом. Я пытаюсь обновить этот номер после перемещения элемента. Но у меня возникла проблема с определенным временем методов jQuery fadeIn () fadeOut (). Моя цель - потушить какой-то текст, обновить текст, а затем снова добавить текст. Первый метод - делать все, что мне нужно. Хотя с этим методом иногда текст будет меняться до того, как fadeOut () завершится и будет выглядеть плохо. Вот почему я пытался использовать функцию для метода fadeOut (), заставить его изменять текст и выполнять fadeIn () только после завершения fadeOut (). Проблема этого второго метода заключается в том, что каждый элемент отображает приоритет «7». Я не знаю почему! Кто-нибудь знает, почему второй метод не работает правильно?

Метод № 1

var priorityNumber = 1;
$("#rotatorList ul li .priority-number").each(function(){
    $(this).fadeOut(200).text(priorityNumber).fadeIn(200);
    priorityNumber = priorityNumber+1;
});

Метод № 2

var priorityNumber = 1;
$("#rotatorList ul li .priority-number").each(function(){
    $(this).fadeOut(200, function(){
        $(this).text(priorityNumber).fadeIn(200);
    });
    priorityNumber = priorityNumber+1;
});

1 Ответ

1 голос
/ 24 ноября 2011

Вы пытались делать это?Индекс, предоставляемый каждым:

jQuery(".test").each(function(i){
    $(this).fadeOut(200, function(){
        $(this).text(i+1).fadeIn(200);
    });
});
...