2010-04-15 63 views
2

我的標題說的是我現在正在問的問題。jQuery如果東西超過價值然後隱藏並添加一個按鈕來顯示什麼隱藏?

我正在檢查一個div來顯示多少鏈接php打印出來,如果有超過10個Id想要隱藏它們並添加一個按鈕,說明閱讀更多,然後顯示其餘鏈接。

 $(document).ready(function() { 

    var newsRss = $('#rssNews >li').length; 
    var driftRss = $('#rssDrift >li').length; 

     $(window).load(function() { 
      if(newsRss > 10) 
    alert(newsRss); 

}); 

    }); 

這是多遠我的代碼了。

我很高興聽到你們可以幫助我的每一個提示和技巧!

最好的問候,

查理

回答

1
$('#rssNews >li').slice(10).addClass("hidemore").hide(); 
if ($(".hidemore").length > 0) { 
    //add your button to the dom here, 
    //and in its click event put: 
    // $(".hidemore").show(); 
} 
2

你可以做相當簡單的是這樣的:

$(function() { 
    $("#rssNews, #rssDrift").each(function() { 
     if($(this).children(":gt(4)").hide().length) 
      $(this).append("<li class='showAll'>Show All</li>"); 
    }); 
    $(".showAll").live('click', function() { 
     $(this).siblings().slideDown(); 
     $(this).remove(); 
    }); 
});​ 

這會隱藏所有的孩子在指數4,這意味着它只能顯示5一次。如果它隱藏了任何內容,它會添加一個「顯示所有」鏈接...單擊此圖標將顯示隱藏的鏈接,並刪除「全部顯示」鏈接本身。

您可以測試它是如何工作在這裏:http://jsfiddle.net/hxrde/

+0

這看起來很不錯:) – Graza 2010-04-15 16:17:46

+0

謝謝你們這麼多!我沒有想到這樣做: - D它的工作原理與我希望的一樣:D – Charlie 2010-04-15 18:54:38

1

查理,

只需添加 「:GT(4)」,爲兄弟姐妹的hideAll功能:

$(".hideAll").live('click', function() { 
    $(this).siblings(":gt(4)").slideUp(); 
    $(this).parent(0).append("<a class='showAll'>Show all</a>"); 
    $(this).remove(); 
}); 

和感謝代碼。很棒!