我的 HTML 看起来像这样(不幸的是它无法更改,因为它正在使用我正在使用的 CMS 呈现):
<li>
<input id="cb1" type="checkbox">
<label for="cb1">
<div>Some Other Content</div>
<div class="pledge">Click to Pledge</div>
</label>
</li>
jQuery.
$("div.pledge").click(function() {
var checkboxlabel = $(this).parent("label");
$("input[for=checkboxlabel]").attr('checked', !$checkbox.attr('checked'));
});
如果我单击标签内的任何位置,使用此代码将切换复选框。我需要的是仅在单击<div class="pledge">
元素时才发生操作。我怀疑 .stopPropagation(); 会在这里帮助我,但我无法让它正常工作。
这是另一个似乎正在实现相同想法的镜头:
$("div.pledge").click(function() {
$("input[for=' + this.parent("label").attr("id") + ']").attr('checked', !$checkbox.attr('checked'));
});