【发布时间】:2016-10-14 18:11:46
【问题描述】:
这是我的代码:https://jsfiddle.net/56xh3rLo/
这是来自 jsfiddle 的 javascript:
$(document).ready(function() {
$(document).click(function(event) { //line 1
if(!$(event.target).closest('.menu').length) { //line 2
if ($('.menu-btn').is(':checked')) { //line 3
$('.menu-btn').trigger('click'); //line 4
}
}
})
})
如您所见,第 1 行是检测用户是否会点击该页面。第 2 行是检测用户是否点击了 .menu 元素以外的任何地方(黑色背景中的任何地方)。第 3 行是检测 .menu-btn 复选框是否被选中。如果选中,则会触发对复选框的点击。
所以,这里是代码的摘要:如果用户点击除黑框区域之外的任何地方并且复选框被选中,代码将触发对复选框的点击,它会取消选中复选框。 问题是,该复选框甚至根本没有选中。为什么它不起作用?
【问题讨论】:
-
您的处理程序设置为在每次选中复选框时触发
click...所以您立即取消选中它。 -
@Rayon 现在我可以选中复选框,但是当我单击黑框区域之外的某个位置时,我无法取消选中该复选框。
-
@AndréDion 我不明白,我该如何解决?
标签: javascript jquery html css checkbox