2

我在我的 cakephp 应用程序中通过 js helper 使用 ajax;为此,我正在使用以下代码。

echo $this->Js->link('test','/controller/test/', array('before'=>$this->Js->get('#loading')->effect('fadeIn'),'success'=>$this->Js->get('#loading')->effect('fadeOut'),'update'=>'#mydiv'));

它工作正常。但是,当我在由 ajax 呈现的视图页面上使用此代码时,它无法正常工作。当我检查页面源时,我发现该视图的脚本未添加到缓冲脚本中。我猜在加载页面时会创建缓冲脚本。在我的情况下,加载页面时未加载特定内容,因此不会在缓冲脚本中添加此布局的脚本。

请指导我是否有任何其他方法可以做到这一点,或者我必须通过自定义 jquery 或其他方法来做到这一点。

4

1 回答 1

3

您应该在 Ajax 链接中使用 evalScripts 选项。这是代码:

echo $this->Js->link('test','/controller/test/', array('before'=>$this->Js->get('#loading')->effect('fadeIn'),'success'=>$this->Js->get('#loading')->effect('fadeOut'),'update'=>'#mydiv', 'evalScripts' => true));

在您的 Ajax 视图文件的底部。请务必包括:

<?php echo $this->Js->writeBuffer();?>
于 2012-07-16T08:24:58.043 回答