我正在使用 Js 助手帮助我将 index.ctp 中“div”的内容替换为另一个文件 changeto.ctp 的内容。
此应用程序有几个带有相应图像的复选框。当我选择一个复选框时,设置存储在数据库中,并显示相应的图像。同样,当未选中时,它将从数据库中删除,并且图像应该消失。
我为此使用 Js 助手:
我的 changeto.ctp 是我的 index.ctp 的子集,可以毫无问题地访问相同的变量和加载(除了没有响应任何单击/更改事件。复选框的 Id 名称完全相同)。
我的索引文件在所有 Html 的底部包含以下 Js 代码:
$this->Js->get($change_checkbox1 )->event('click',
$this->Js->request(array(
'controller'=>'testing',
'action'=>'changeto'
), array(
'update'=>'#changeDiv',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
'isForm' => false,
'inline' => true
))
))
);
这正在生成以下 Jquery/javascript
$(document).ready(function () {$("#ck0_1_8").bind("click", function (event) {$.ajax({async:true, data:$("#ck0_1_8").closest("form").serialize(), dataType:"html", success:function (data, textStatus) {$("#changeDiv").html(data);}, type:"post", url:"\/mytest-site\/options\/testing"});
return false;});
}
我的控制器有一个名为
changeto()
{
$this->layout = 'ajax';
}
我第一次单击此复选框时,它可以正常工作。但是,任何后续点击都不起作用。甚至没有调用 javascript。
我的问题是:
有任何想法吗 ?如果我以某种方式要求 cakephp 在 bind() 中使用 on() / live() 会有所帮助。如果是的话,如何?
谢谢!!