jQuery加载列表问题

时间:2014-05-01 00:48:52

标签: php jquery

我正在使用此功能根据需要“加载更多”列表项。

我正在使用的加载更多功能:http://jsfiddle.net/cse_tushar/6FzSb/2/

我用PHP填充我的列表。我的问题是页面加载时显示所有列表项。当我点击加载更多时,功能开始工作,我可以加载更多或加载更少。页面加载时只应显示3个列表项(x = 3)。

我有什么想法可以解决这个问题吗?

提前致谢!

列表代码:

<?php include('comments.php'); 

                /*
                /   Output the comments one by one:
                */
                foreach($comments as $c){

                    echo $c->markup();
                }

                ?>

comments.php(简体):

    class Comment
    {
public function markup()
    {

            return '<li>$text</li>' };

};

负载更多的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();
        }
    });
});

1 个答案:

答案 0 :(得分:0)

要仅输出3次,您需要安装一个计数器(一个简单的变量)来计算您打印标记的次数。你可以做这样的事情来实现这个目标:

$i = 0;
foreach($comments as $c){
  $i++;
  if($i < 4) {
    echo $c->markup();
  }
 }