我编写了一个简单的 js 函数来打开/关闭复选框,然后单击父项(在本例中为 TD)。当您单击 TD 上的任意位置时,此功能按预期工作。
然而,当您点击复选框本身时,没有任何反应。
我想知道的是为什么它这样做以及最好的解决方法是什么?
I have a provided a jsfiddle to demo this.
这是我的 js 函数:
$("td.onoff").click(function() {
var objCheckbox = $(this).find("input[type=checkbox]");
if( objCheckbox.length >= 1 ) {
objCheckbox.prop("checked", !objCheckbox.prop("checked"));
}
});
谢谢。
最佳答案
您需要当事件源不是带有类 onoff 的 td 时通过传递事件代码
,您可以这样做。
$(function() {
$("td.onoff").click(function(event) {
if(event.target.className != 'onoff') return;
var objCheckbox = $(this).find("input[type=checkbox]");
if( objCheckbox.length >= 1 ) {
objCheckbox.prop("checked", !objCheckbox.prop("checked"));
}
});
});
关于单击父级时的 jQuery 切换复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489644/