2012-03-30 11 views
2

#の4つの最新のつぶやきを得るには、次のコードがあります。つぶやきをひとつずつ追加するJquery

$.getJSON('http://search.twitter.com/search.json?rpp=4&callback=?&q=%23jQuery&result_type=recent' ,function(data){ 

    for(var i=0;i<data.results.length;i++){ 
     var tweeter = data.results[i].from_user; 
     var tweetText = data.results[i].text; 
     var tweetText = tweetText.substring(0, 139); 

     $(tweetCont).hide().append(
     '<div class="tweet"><p><span class="tweetName"><a href="http://twitter.com/' + tweeter + '">' + tweeter + '</a></span> ' 
     + tweetText + '<br /><span class="tweetTime">' + tweetTime(data.results[i].created_at) + '</span></p></div>' 
     ).fadeIn('fast'); 
    } 

}); 

つぶやきを追加しているときに、同時にすべてがフェードインします。私は彼らが500ミリ秒のように遅れて1つずつフェードインさせるのが好きです。 fadeIn( 'fast')の前の単純な.delay(500)は機能しません。

+0

「tweetCont」とは何ですか? –

答えて

2

これは似ている - それが動作するかどうか私に教えて:

$.getJSON('http://search.twitter.com/search.json?rpp=4&callback=?&q=%23jQuery&result_type=recent' ,function(data){ 

    var which = 0; 

for(var i=0;i<data.results.length;i++){ 
    var tweeter = data.results[i].from_user; 
    var tweetText = data.results[i].text; 
    var tweetText = tweetText.substring(0, 139); 

    $(tweetCont).append(
    '<div class="tweet" style="display: none;"><p><span class="tweetName"><a href="http://twitter.com/' + tweeter + '">' + tweeter + '</a></span> ' 
    + tweetText + '<br /><span class="tweetTime">' + tweetTime(data.results[i].created_at) + '</span></p></div>' 
    ); 

    if (i == (data.results.length - 1)) { 
     showTweet(); 
    } 
} 



    function showTweet() { 
     $(tweetCont).find('.tweet').eq(which).fadeIn('fast'); 
     which++; 
        if (which < data.results.length) { 
     setTimeout(showTweet, 500); 
        } 
    }; 

}); 
+0

これは完全に機能します!私を助けてくれてありがとう。 – timG

0

あなたの例では、ツイートのコンテナ($(tweetCont))に隠れていて、フェードしています。
おそらくコンテナに各つぶやきを追加してから(setTimeoutの助けを借りて生成された)遅延して各つぶやきをフェードインする必要があります

$.getJSON('http://search.twitter.com/search.json?rpp=4&callback=?&q=%23jQuery&result_type=recent' ,function(data){ 

    for(var i=0;i<data.results.length;i++){ 
     var tweeter = data.results[i].from_user; 
     var tweetText = data.results[i].text; 
     var tweetText = tweetText.substring(0, 139); 

     var tweetHtml = '<div class="tweet"><p><span class="tweetName"><a href="http://twitter.com/' + tweeter + '">' + tweeter + '</a></span> ' 
        + tweetText + '<br /><span class="tweetTime">' + tweetTime(data.results[i].created_at) + '</span></p></div>'; 
     var $el = $(tweetHtml) 
         .hide() 
         .appendTo(tweetCont); 
     (function(el,index){ 
      setTimeout(function(){ 
       el.fadeIn('fast'); 
      },500 * index); 
     })($el,i); 
    } 

}); 
+0

これらは追加されますが、フェードインしません。 – timG

+0

@timGアップデートを参照してください –

+0

それは追加されないようです。 – timG

関連する問題