检测元素外部的点击,检查复选框是否被选中,并触发点击
Detect click outside of element, check if checkbox is checked, and trigger click
下面是我的HTML代码:
<input class="menu-btn" type="checkbox" id="menu-btn" />
下面是我的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行可以工作,第3行不能工作,它也不允许我选中复选框。为什么呢?
编辑:这是我想做的:
第1行用于检测是否有单击。第2行检测单击是否在#菜单之外,第3行检查menu-btn是否被选中。如果选中,那么第4行将触发menu-btn单击。问题是第3行不允许我检查复选框,如果它目前没有被选中。
你可以使用prop来选中复选框,而不是像$('#menu-btn').prop('checked', 'checked');
那样触发点击事件,然后用$('#menu-btn').prop('checked', false);
取消选中
切换代码:
$(document).ready(function() {
$(document).click(function(event) { //line 1
if(!$(event.target).closest('#menu').length) { //line 2
if(!$('#menu-btn').prop('checked')) { //line 3
$('#menu-btn').prop('checked', 'checked'); //line 4
} else {
$('#menu-btn').prop('checked', false);
}
}
})
})
试试这个切换代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(window).click(function() {
$('#menu-btn').trigger('click');
});
});
</script>
<input class="menu-btn" type="checkbox" id="menu-btn" />
相关文章:
- 如何检查该函数是否从外部js文件调用
- jQuery-检查外部页面上是否存在DIV,如果存在,则加载DIV,否则加载另一个
- 如何检查是否向特定的外部网页发出了请求
- 如何检查我是否使用java服务登录到外部应用程序
- 检查类是否处于活动状态,如果是,请运行外部.js文件?可能
- 如何使用JavsScript检查外部页面上是否存在字符串
- 检查外部js脚本是否已经在组件Angular 2中
- 如何检查外部javascript是否加载失败
- Js从外部网站检查登录
- jQuery检查外部链接
- 检查外部Javascript文件中的IsPostBack
- 检查是否已加载外部样式表以进行回退
- jQuery检查外部图像宽度
- 动态HTML表格与Javascript复选框难题-如何访问复选框.从函数外部检查
- 检测元素外部的点击,检查复选框是否被选中,并触发点击
- 在加载外部图像之前检查浏览器缓存
- bootstrap在dropdown.js中使用什么来检查外部点击
- 检查外部URL的Javascript函数
- 如何检查外部字体的加载
- 检查外部 JSON 中是否存在单词