2011-11-24 126 views
2

我的頁面上有6個元素。每個元素旁邊都會顯示優先級編號。我試圖在元素移動後更新此數字。但是,我遇到了jQuery fadeIn()fadeOut()方法的一些時間問題。我的目標是淡出一些文本,更新文本,然後淡入文本。第一種方法是做我需要的一切。儘管有時在fadeOut()完成之前文本會發生變化,並且看起來很糟糕。這就是爲什麼我試圖爲fadeOut()方法使用一個函數,並且只在fadeOut()完成時才改變文本並執行fadeIn()。第二種方法的問題是每個元素都顯示「7」的優先級。我不知道爲什麼!有誰知道爲什麼第二種方法不能正常工作?jQuery fadeIn()fadeOut()計時問題

方法#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; 
}); 
+0

這是因爲通過時間淡出完成後,優先數由6加我想到用增量別的地方,將有助於:另一件事你可以嘗試使用提供的每個指標。 – theshadowmonkey

回答

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/小提琴(告訴我,如果我missunderstood你)

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

謝謝!你的第一個例子完美運作。不能相信我錯過了那個。 O_O – RyanPitts