我正在尝试为我的网站创建一个动态分页系统,我决定使用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>
答案 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;
});
});
});
看起来您可以简单地使用跨度的文本内容作为页码(请参阅.text()更改)。
您可能希望阻止用户尝试一次加载太多页面(请参阅isWorking变量,该变量应阻止用户一次加载超过1页)。