jquery选择器|jquery的getjson实现页面不刷新加载剩余数据方法事件

更新时间:2020-03-30    来源:jquery    手机版     字体:

【www.bbyears.com--jquery】

有了“用JS将一个div插入到指定的一个div中或后面”这篇文章的指引基础,下面还是以情景的模式来叙述怎样用JS做到不刷新加载剩余数据。


案例情景:


一个评论页面,先只显示了10条数据,我要通过js+ajax获取数据无刷新页面异步加载显示下一个10条数据,接着触发一次、显示10条,直到全部显示完整。


js异步加载剩余评论数据


解决原理步骤:


1、首先要取得下一个10条评论数据字符串
2、然后将数据赋值到原先10条评论后面
3、同时更新剩余评论数显示、判断如果剩余数少于0则隐藏图标
完整HTML代码:(程序后台代码视情况自处理)
/*
开头说下代码中相应参数含义,不同程序情况会显示不一样,原理是一样的:
$comment_data  前10条评论数据、循环出来,里面具体参数不用管了
{$comment_num}  剩余评论数量
*/


    {foreach from=$comment_data item=comment}

    {$comment.username}


    {$comment.content}



    {/foreach}

    {if $comment_num > 0}javascript:void(0);” id=”ajax” class=”ajc b4 mt10″>点击加载更多{$comment_num}条评论{/if}



    <script type=”text/javascript”>
    ajax.onclick = function() {
    insertEle();//点击加载更多触发事件
    }
    function insertEle() {
    var oTest = document.getElementById(“comments”);//获取评论外围div的id
    var ajax_num = document.getElementById(“ajax_num”).value;//获取当前显示到第几页评论数据
    var ajax_i = parseInt(ajax_num) + 1;//评论的下一页赋值,第一次加1代表获取第二页数据
    var comment_num = document.getElementById(“comment_num”).value;//获取剩余评论数
    var comment_i = parseInt(comment_num) – 10;//赋值加载后的剩余评论数
    if(comment_num < 0 ){
    document.getElementById(‘ajax’).style.display = “none”;//如果剩余评论数为0,直接隐藏返回
    return;
    }
    /*以下3行创建新ul元素*/
    var newNode = document.createElement(“ul”);
    newNode.id = “c” + ajax_i;
    newNode.className = “comment”;
    /*以下为获取下一个10条评论数据的ajax处理方法,参考代码、视你的程序情况而定,注意将数据拼成字符串*/
    $.getJSON(“comment.php?act=ajax&g_id=” + {$goods_id} + “&page=” + ajax_i,
    function(data) {
    if (data.error == 0) {
    newNode.innerHTML = data.content;//最后拼成的字符串数据
    } else {
    alert(“已经没有评论了!”)
    }
    })
    var reforeNode = document.getElementById(“c”+ajax_num);
    oTest.insertBefore(newNode,reforeNode.nextSibling);//将创建的元素,添加到c_1的后面
    if(comment_i <= 0 ){
    document.getElementById(‘ajax’).style.display = “none”;//如果加载数据后、剩余评论数少于0,则隐藏按钮
    }
    document.getElementById(“ajax_num”).value = ajax_i;//更新页数
    document.getElementById(“comment_num”).value = comment_i;//更新评论数
    document.getElementById(“c_num”).innerHTML = comment_i;//更新评论数显示
    }
    </script>

    本文来源:http://www.bbyears.com/wangyezhizuo/90744.html