请找到以下代码
$("#chkCopy").toggle(function () {
copyDetails();
},
function () {
emptyCopyDetails();
});
// functions which do not have any effect on the checkbox
function copyDetails() {
}
function emptyCopyDetails() {
}
问题是复选框未显示已检查状态。
提前致谢
答案 0 :(得分:3)
.toggle()
会中断检查,因为.toggle()
实际为calls e.preventDefault()
on the click
event underneath。而不是那种方法,我推荐这样的东西:
$("#chkCopy").change(function () {
if(this.checked) {
copyDetails();
} else {
emptyCopyDetails();
}
});
Here's an updated/working version of your demo with the above approach
答案 1 :(得分:2)
$("#chkCopy").change(function () { alert("1");
},
function () {
alert("2");
});
使用更改而不是切换
答案 2 :(得分:1)
由于
.toggle()
内部使用了 点击处理程序来完成它的工作,我们必须 取消绑定click
以删除行为 随附.toggle()
,其他click
处理程序可以被捕获 交火。 实施也 在活动上致电.preventDefault()
, 所以链接不会被遵循 按钮不会被点击如果 已经呼吁.toggle()
元件。
因此,如果要选中并取消选中复选框,则无法使用toggle()
。您可以改为使用click()
:
$("#chkCopy").click(function() {
if (this.checked) {
copyDetails();
} else {
emptyCopyDetails();
}
});
答案 3 :(得分:0)
看看这个答案你会做同样的事情