2012-06-26 47 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

相关问题