【问题标题】:jQuery fadeIn() fadeOut() timing issuejQuery fadeIn() fadeOut() 计时问题
【发布时间】:2011-11-24 00:51:34
【问题描述】:

我的页面上有 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;
});

【问题讨论】:

  • 这是因为在淡出完成时,优先级数增加了 6。我认为在其他地方使用增量会有所帮助。

标签: jquery fadein fadeout timing


【解决方案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/fiddle(如果我误解了你,请告诉我)

您可以尝试的另一件事是使用每个提供的索引:

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

【讨论】:

  • 谢谢!您的第一个示例运行良好。不敢相信我错过了。 O_o
猜你喜欢
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
相关资源
最近更新 更多