【发布时间】:2014-08-01 14:49:57
【问题描述】:
我有一个CMenu 代码,当我尝试删除一个项目时会触发两个确认对话框。
这就是我的CMenu 代码的样子:
$this->widget('zii.widgets.CMenu', array(
'items'=>array(
array('label'=>'List things', 'url'=>array('list')),
array('label'=>'Delete thing', 'url'=>'#', 'linkOptions'=>array(
'submit'=>array(
'delete',
'id'=>$model->thingID
),
'confirm'=>'Are you sure?'
)),
),
'htmlOptions'=>array(
'class'=>'divided'
)
));
我在这段代码中遗漏了什么吗?为什么确认对话框会触发两次?
编辑:
问题是由 skel-panel 内部的某些东西引起的,但我无法找出究竟是什么原因造成的。任何想法如何在 skel-panel 中禁用 href 跟踪?
编辑 2:
我找到了问题的根源,但我不确定如何解决它。事情是 skel-panel 将整个 body 包裹在一个 div 中。奇怪的是,它显然可以处理所有hrefs 的点击。
initObjects 函数是包装所有内容的函数(此处为 https://github.com/n33/skelJS/blob/master/src/skel-panels.js)
编辑 3:
好的,我发现了错误。它是在 jQuery 的某个地方引起的,它在 1.8.3 和 1.9.0 之间得到了修复。
我在哪里可以获得这两个版本之间的错误/修复/补丁的详细日志,以便我可以只挑选我感兴趣的更改? (因为我负担不起升级到 jQuery 1.9.x 所需的时间)
【问题讨论】:
-
我将该代码复制到我的模型的
actionView()中,它运行良好,只发出一次警报 -
所以你的意思是它只在
actionAdmin()发出两次警报。 -
到目前为止我尝试过的所有操作中,它只发出一次警报。
-
你说得对,这个 bug 是由 skel-panels(一个 JS 库)中的一些问题引起的。