Jquery 动态复选框不会执行取消选中的工作
您好,我正在使用以下代码向表单动态添加复选框:Jquery 动态复选框不会执行取消选中的工作,jquery,dynamic,Jquery,Dynamic,您好,我正在使用以下代码向表单动态添加复选框: <table> <tr> <?php foreach ($checks as $che) : ?> <td><?php echo $this->Form->checkbox($che, array('class' => $che, 'name' => $che)); ?></td> <?php endforeach;
<table>
<tr>
<?php foreach ($checks as $che) : ?>
<td><?php echo $this->Form->checkbox($che, array('class' => $che, 'name' => $che)); ?></td>
<?php endforeach; ?>
</tr>
第一次单击复选框时,它工作正常,h3标记出现,但当我再次尝试单击它时,它不会像应该的那样隐藏
任何帮助都会很好
提前谢谢。我已经解决了,但谢谢你的回复
$('.Variables:checkbox').on('click', (function()
{
if($(this).prop("checked"))
{
$("#accordion").find('h3').filter(':contains('+this.name+')').show();
}
else
{
$("#accordion").find('h3').filter(':contains('+this.name+')').hide();
}
}));
这与CakePHP无关。问题在于HTML和Javascript,或者两者都有。(请发布生成的HTML代码,而不是生成它的PHP)。
live()
实际上已被弃用,明智的做法是转到on()
检查h3
上的CSS,它可能与复选框重叠,因此单击事件永远不会击中您的节点。
$('.Variables:checkbox').on('click', (function()
{
if($(this).prop("checked"))
{
$("#accordion").find('h3').filter(':contains('+this.name+')').show();
}
else
{
$("#accordion").find('h3').filter(':contains('+this.name+')').hide();
}
}));