2013-02-01 6 views
0

Quelque chose va mal tourné avec ce code, mais il est tard et je ne peux pas comprendre:jQuery JSON fadein - ne fonctionne pas?

var json_object = '.$json_twitter_array.'; 

function displayTweets(obj){ 
    $("#tweetblock").html(obj[0].description).fadeIn("slow"); 
    var i = 1; 
    setInterval(
     function(){ 
      $("#tweetblock").html(obj[i].description).fadeIn("slow"); 
      i++; 
      if(i >= obj.length) i = 0; 
     },6000); 
} 
displayTweets(json_object); 

il tourne en boucle à travers l'objet JSON très bien, le problème est le fadeIn ne fonctionne pas, le texte est juste affiché. Quelqu'un peut-il signaler où je vais mal/manquer l'évidence?

Merci beaucoup!

+1

Possibilité de duplication: http://stackoverflow.com/q/1490563/1026459, également absence probable de tout dépannage. –

Répondre

2

Le problème est que vous êtes en train de fondre l'objet après que le contenu a été placé. Un moyen rapide de se déplacer est d'ajouter un hide() à chaque élément avant la html() arrive, le contenu est ajouté à la zone cachée, puis après que fadeIn() coups de pied dans

Alors chacun.

$("#tweetblock").html 

Devient:

$("#tweetblock").hide().html 

Et le code final devrait ressembler à:

var json_object = '.$json_twitter_array.'; 

function displayTweets(obj){ 
    $("#tweetblock").hide().html(obj[0].description).fadeIn("slow"); 
    var i = 1; 
    setInterval(
     function(){ 
      $("#tweetblock").hide().html(obj[i].description).fadeIn("slow"); 
      i++; 
      if(i >= obj.length) i = 0; 
     },6000); 
} 
displayTweets(json_object); 
+1

Merci Jake, ça a l'air si simple avec ton explication mais je ne pouvais pas m'en sortir le vendredi soir. Je vous remercie! – Studio4

1

Vous devez l'éteindre avant de pouvoir le remettre en place!

fadeIn et fadeOut modifiez uniquement la visibilité d'un élément. Ils ne font rien quand le contenu change.

1

Il suffit de faire une chose en css:

#tweetblock{ 
    display:none; 
} 

Alors fadeIn() se produira.