2011-06-09 43 views
1

我有一個列表<li>style="display:none",我想通過調用下面的代碼來顯示第一個<li>,但它似乎沒有工作。爲什麼不是這個jQuery的工作?

$('.tweet_list li').first().css('display','list-item'); 

點擊這裏查看demo page,它目前不顯示自style="display:none"財產東西。

我也曾嘗試:

$('.tweet_list li').first().show(); 
$('.tweet_list li:first').show(); 

他們沒有工作。

+0

[錯誤請求](http://api.twitter.com/1/statuses/user_timeline.json?screen_name=CloudPeopleAU&count=5&include_rts=1&callback=jsonp1307598186697) – mplungjan 2011-06-09 05:43:38

+0

你包裹它'$(文件).ready(function(){});',對嗎? – 2011-06-09 05:55:44

+0

@Ros是的,他是但不正確。 – mplungjan 2011-06-09 05:57:41

回答

4

通過設置在該行斷點,你會發現,在它執行的時候,你的ul.tweet_list是空的。

爲什麼?因爲.tweet()(它填充了<ul>)是異步的:當您的.css()行執行時,tweets尚未加載。

通過jquery.tweet.js挖掘,我發現這條線(行233):

$(widget).trigger("loaded").trigger((tweets.length === 0 ? "empty" : "full")); 

因此,它看起來像你需要綁定到loaded事件,並顯示在那裏的第一鳴叫:

$("#twitter_update_list").bind("loaded", function() { 
    $('.tweet_list li').first().css('display','list-item'); 
}); 
+0

+1這是要走的路 – Ben 2011-06-09 06:00:19

1

嘗試:

$('.tweet_list li').first().show(); 
+0

或$(「。tweet_list li:first」)。show();'的差服務。雖然這會爲你的li元素添加'display:block',所以如果你打算將它設置爲'display:list-item' – Wex 2011-06-09 05:47:53

+0

'.show()'似乎沒有任何區別,請小心。 – Miranda 2011-06-09 05:49:30

0

沒有元素聲明可容納您所指的tweet_list類。它不是由你的代碼創建/分配的,或者是在HTML中靜態的。問題可能是你指的是一個不存在的元素?

0

您還需要將所有內容都包裝在document.ready中 - 爲什麼只有5時才顯示1?

$(document).ready(function(){ 
    $("#twitter_update_list").tweet({ 
     username: ".....", 
     avatar_size: 0, 
     count: 1, //display up to 100 tweets, as permitted by the twitter search api 
     loading_text: "loading tweets..." 
     }).bind("loaded", function() { // code from @Box9 
     $('.tweet_list li').first().css('display','list-item'); 
     }); 
});