【发布时间】:2012-04-27 06:59:07
【问题描述】:
我按照 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'));
【问题讨论】: