我在一系列div fieldcontain + fieldset控制组中设置了一组复选框。它们按主题分组,包含12个主要主题和每个主题下的2-5个子主题。
当我“更改”一个复选框时,它会触发整个控制组的更改事件。如果我删除控制组fieldset,它会触发整个列表的更改事件(当被点击时),无论我使用input [name =“checkbox_name”]还是input.checkbox-class。
如何更改 更改实际复选框(从未选中复选到已选中或已选中或未选中)?
答案 0 :(得分:4)
假设你正在做这样的事情:
$('input:checkbox').change(function ()
{
// stuff
});
您可以使用event.stopPropagation()
阻止事件冒泡:
$('input:checkbox').change(function (e)
{
e.stopPropagation();
});
您可以使用event.stopImmediatePropagation()
停止事件冒泡和阻止同一元素上的其他事件处理程序运行。
答案 1 :(得分:0)
感谢@Matt Ball,但我发现这就是我所需要的:
$('input[name="subtopics_chosen"]:checked').live('change',function()
在我之前
$('input[name="subtopics_chosen"]').live('change',function()
我会把你的StopPropagation小费保留一天,但我不知道。