我的页面上有6个元素。优先级数字显示在每个元素旁边。我试图在移动元素后更新此数字。但是,我在jQuery fadeIn()fadeOut()方法的某些计时方面遇到问题。我的目标是淡出一些文本,更新文本,然后淡入文本。第一种方法是完成我需要的一切。尽管使用该方法,有时文本会在fadeOut()完成之前更改并且看起来很糟。这就是为什么我试图将函数用于fadeOut()方法,并使其仅在fadeOut()完成后才更改文本并执行fadeIn()的原因。第二种方法的问题在于每个元素都显示优先级“ 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;
});

最佳答案

您是否尝试过这样做?:

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

    });

像这样的http://jsfiddle.net/JUSa7/1/小提琴(如果我误解了,请告诉我)
您可以尝试的另一件事是使用每个提供的索引:
jQuery(".test").each(function(i){
    $(this).fadeOut(200, function(){
        $(this).text(i+1).fadeIn(200);
    });
});

关于jquery - jQuery fadeIn()fadeOut()计时问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8251040/

10-13 21:36