我按照 cakephp 网站上的教程进行操作,但使用 ajax 进行分页只能工作一次 - 内容已更新并且没问题。但是我第二次点击一些页面链接,整个页面被重新加载——我认为当 ajax 刷新内容时 click() 事件处理程序不会再次绑定——我不知道为什么......我正在使用这个:
$this->Paginator->options(array(
'update' => '#content',
'evalScripts' => true
));
当我在源代码中加载页面时,有:
<a href="/final/books/index/page:9/sort:id/direction:asc" id="link-458631432" rel="prev">« Previous</a>
$(document).ready(function (){
$("#link-925538478").bind("click", function (event) {
$.ajax({dataType:"html", success:function (data, textStatus){
$("#content").html(data);}, url:"\/final\/books\/index\/page:10\/sort:id\/direction:desc"});
return false;});
...
例如,当我单击下一页(第一次)时,所有内容都会刷新(链接hrefs也可以正常工作)但脚本没有重新加载,因此我认为没有绑定点击事件,再次点击下一页只是使用链接。
这很奇怪,因为我在分页链接之后添加了这个:
<script>
$(document).ready(function (){
alert('yes');
});
</script>
并在第一次 ajax 刷新后显示警报......我设置了这个东西。<?php echo $this->Js->writeBuffer(); ?>
在最后...
- - - - - - - - - -编辑
我认识到它不是分页器 - 对于以下 2 个链接:
<?php echo $this->Js->link('link1', array('author' => 'abc'), array('update' => '#content')); ?>
<?php echo $this->Js->link('link2', array('author' => '123'), array('update' => '#content')); ?>
它是一样的-当我单击link1它的ajax时,然后当我单击link2时会正常重新加载-因此在ajax刷新后与脚本评估有关...那可能是什么?
我正在像这样设置 JSHelper:
var $helpers = array('Js' => array('Jquery'));