Jquery动态分页评论专家意见

时间:2009-07-13 17:28:22

标签: php javascript jquery ajax pagination

我正在尝试为我的网站创建一个动态分页系统,我决定使用ajax回调函数在用户点击不同的页面元素时动态显示注释。 所以我将下面的代码粘贴为我如何做的例子......我想问你们,如果我做得对,或者如果他们有更好的方法,请指点我正确的方向:

javascript:

$(document).ready(function(){
$(".pages").click(function(){
var pageno=$(this).attr("id").slice(4,8);//slicing out numbers from the id i.e "1" from "page1"
$.get("news.php", { pageno: pageno},
    function(data){
     $("#comments").html(data);
    });
});
});

HTML:

<div>
<span id="page1" class="pages" >1</span>
<span id="page2" class="pages" >2</span>
<span id="page3" class="pages" >3</span>
</div >
<div id="comments">
</div>

PHP:

<div><?php echo $_REQUEST['pageno'];?></div> 

2 个答案:

答案 0 :(得分:1)

我不认为这是不合理的,尽管我提到了两个想法。

首先,我认为动态分配点击处理程序而不是实际将“click =”放入HTML(这是“渐进增强”的核心)是一件好事。在Hoerver中,您可能想要使用不同类型的选择器。按类查找一组元素是定义元素的较慢方法之一,尤其是在可能有许多页面的情况下。你可以将它们全部放在div中并执行$(“#myDiv span”)。click()。那应该快得多。

其次,假设页码始终以span id的第四个字符开头,这似乎有点脆弱。将id作为页码本身可能更好。

答案 1 :(得分:1)

$(document).ready(function(){
    var isWorking = false;
    $(".pages").click(function(){
        if ( isWorking ) 
        {
            alert('Please wait for your preceeding request to finish.');
            return false;
        }
        isWorking = true;
        var pageno = $(this).text();
        $.get("news.php", { pageno: pageno},
            function(data){
                $("#comments").html(data);
                isWorking = false;
            });
    });
});
  1. 看起来您可以简单地使用跨度的文本内容作为页码(请参阅.text()更改)。

  2. 您可能希望阻止用户尝试一次加载太多页面(请参阅isWorking变量,该变量应阻止用户一次加载超过1页)。