如何截断无序列表并允许用户单击以显示所有?

时间:2013-02-27 02:58:26

标签: javascript jquery html-lists

我有一个很长的无序列表,我想隐藏除前三个加载的所有列表,然后在点击时扩展到所有列表。

到目前为止,这是我的jQuery:

$('#myList').find('li:gt(3)').addClass('togglr').hide().end().append(
    $('<li class="show_more_btn">Read more »</li>').click(function(){
        $(this).siblings('.togglr').toggle();
        if ($(this).hasClass('expanded')){
            $(this).text('View All');
            $(this).removeClass('expanded');
        } else{
            $(this).text('View Less');
            $(this).addClass('expanded');
        }
    });

我的HTML:

<ul id="myList">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
    <li>Item 7</li>
    <li>Item 8</li>
</ul>

这是一个jsFiddle:http://jsfiddle.net/t2jrZ/

我哪里错了?

1 个答案:

答案 0 :(得分:2)

你快到了!也许只是想太多;)

当前代码的问题是当前脚本末尾的最后一个});,请将其替换为}));

HTML

<ul id="info">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
    <li>Item 7</li>
    <li>Item 8</li>
</ul>
<button type="button" onclick="showAll();">Show All</button>

使用Javascript:

var limit = 3;
$('#info li:lt(' + limit + ')').show();
$('button').click(function(){
     $('#info li').show();
});

http://jsfiddle.net/t2jrZ/2/