jQuery加载前3个元素,单击“加载更多”以显示下5个元素

我有一个无序列表:

    Load more

    我希望用另一个HTML文件中的列表项填充此列表:

     
  • One
  • Two
  • Three
  • Four
  • Five
  • Six
  • Seven
  • Eight
  • Nine
  • Ten
  • Eleven
  • Twelve
  • Thirteen
  • Fourteen
  • Fifteen
  • 我想加载前3个列表项,然后在用户点击“加载更多”div时显示接下来的5个项目:

     $(document).ready(function () { // Load the first 3 list items from another HTML file //$('#myList').load('externalList.html li:lt(3)'); $('#myList li:lt(3)').show(); $('#loadMore').click(function () { $('#myList li:lt(10)').show(); }); $('#showLess').click(function () { $('#myList li').not(':lt(3)').hide(); }); }); 

    我需要帮助,因为我希望“加载更多”以显示接下来的5个列表项,但如果HTML文件中有更多列表项,则再次显示“加载更多”div并允许用户显示下一个5项,重复此项,直到显示整个列表。

    我怎样才能做到最好?

    我创建了以下jsfiddle: http : //jsfiddle.net/nFd7C/

    工作演示: http : //jsfiddle.net/cse_tushar/6FzSb/

     $(document).ready(function () { size_li = $("#myList li").size(); x=3; $('#myList li:lt('+x+')').show(); $('#loadMore').click(function () { x= (x+5 <= size_li) ? x+5 : size_li; $('#myList li:lt('+x+')').show(); }); $('#showLess').click(function () { x=(x-5<0) ? 3 : x-5; $('#myList li').not(':lt('+x+')').hide(); }); }); 

    新JS显示或隐藏更多负载并显示更少

     $(document).ready(function () { size_li = $("#myList li").size(); x=3; $('#myList li:lt('+x+')').show(); $('#loadMore').click(function () { x= (x+5 <= size_li) ? x+5 : size_li; $('#myList li:lt('+x+')').show(); $('#showLess').show(); if(x == size_li){ $('#loadMore').hide(); } }); $('#showLess').click(function () { x=(x-5<0) ? 3 : x-5; $('#myList li').not(':lt('+x+')').hide(); $('#loadMore').show(); $('#showLess').show(); if(x == 3){ $('#showLess').hide(); } }); }); 

    CSS

     #showLess { color:red; cursor:pointer; display:none; } 

    工作演示: http : //jsfiddle.net/cse_tushar/6FzSb/2/

    简单而且变化不大。 并且在加载整个列表时还会隐藏更多负载。

    jsFiddle 在这里 。

     $(document).ready(function () { // Load the first 3 list items from another HTML file //$('#myList').load('externalList.html li:lt(3)'); $('#myList li:lt(3)').show(); $('#showLess').hide(); var items = 25; var shown = 3; $('#loadMore').click(function () { $('#showLess').show(); shown = $('#myList li:visible').size()+5; if(shown< items) {$('#myList li:lt('+shown+')').show();} else {$('#myList li:lt('+items+')').show(); $('#loadMore').hide(); } }); $('#showLess').click(function () { $('#myList li').not(':lt(3)').hide(); }); });