【发布时间】:2012-06-27 12:31:23
【问题描述】:
我正在使用 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() 会有所帮助吗?如果是的话如何?
谢谢!!
【问题讨论】:
-
成功了!!通过直接在 javascript 中将 bind() 替换为 live() 。有什么办法可以告诉 cakephp 使用 live() 而不是 bind() ??