2012-06-26 45 views
2

我有500 li的,但我只想先顯示5,然後我可以點擊一個按鈕,並顯示我更多li的和也許最後沒有更多的li的,但不是所有的只是另一個5?我如何顯示只有5李和有一個按鈕,顯示5更多

+2

您是否嘗試過什麼了嗎? – m90

+0

我已經嘗試了一些東西,但它顯示5李的,但是當我點擊顯示更多它顯示所有結束,我只有蒼蠅它顯示5更多 –

回答

2

您可以動態地在您的ul之後添加一個「更多」按鈕,並一次顯示5個li,直到全部顯示。然後,你可以隱藏更多的按鈕:

var vis = 5; 
$('li').slice(vis).hide(); 

var $more = $('<a href="#">test</a>') 
$more.click(function(){ 
    $('li:hidden').slice(0,vis).show(); 
    if($('li:hidden').length == 0) 
     $more.hide(); 
}); 
$('ul').after($more); 

活生生的例子:http://jsfiddle.net/JKWtP/

+0

謝謝,我想我會使用這種方法。 –

5
var $li = $("li"), 
    chunk = 5; 

$li.slice(chunk).hide(); 

$("button").click(function() { 
    $li.filter(":hidden").slice(0, chunk).show(); 
});​ 

jsFiddle

有更有效的方法來編寫這段代碼,但這個代碼是相當可讀的。

+1

我認爲這是一個比接受的更好的答案。 – defau1t

+0

@refhat - 我不一定不同意,但你能詳細說明你爲什麼這麼想嗎? 2個答案几乎完全相同。 – Jamiec

+1

@Jamiec同意他們是99%相同,但這個有較少的代碼,連貫和更具可讀性,當然不依賴於標記 – defau1t

相關問題