【问题标题】:Jquery dynamic pagination for comments expert opinionjquery动态分页征求意见专家意见
【发布时间】:2009-07-13 17:28:21
【问题描述】:

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

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> 

【问题讨论】:

  • 只是出于好奇,是否会动态生成分页跨度?如果是这样,最好将 click 方法动态设置为 click="someMethod( echo someNumber ?> 之类的东西。这看起来很骇人听闻,但我并不完全是专家。
  • 是的,页面跨度将动态生成......我正在寻找更多专家意见......无论如何,谢谢

标签: php javascript jquery ajax pagination


【解决方案1】:

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

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

其次,假设页码总是从 span id 的第四个字符开始似乎有点脆弱。将 id 本身设置为页码可能会更好。

【讨论】:

  • 谢谢,我会认为这是对我正在做的事情的认可,我会接受您的建议,让 id 本身成为页码.....非常感谢....是我应该添加他们的任何错误处理程序吗?
  • 我使用的是“page1”而不是“1”,因为 acc。根据 W3c 标准,您的 id 不应以数字开头.....
【解决方案2】:
$(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. 看起来您可以简单地使用 span 的文本内容作为页码(请参阅 .text() 更改)。

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

【讨论】:

  • 谢谢,我会查看您的所有建议...我应该添加它们的任何错误处理程序吗?
猜你喜欢
  • 2013-02-25
  • 2018-12-13
  • 2010-12-16
  • 1970-01-01
  • 2011-11-10
  • 2020-05-14
  • 2010-10-30
  • 2010-10-30
  • 2018-11-01
相关资源
最近更新 更多