如果未在查询中单击元素,则隐藏菜单
hide menu if element is not clicked in query
我试图在单击文档时隐藏菜单".options",但仅单击图标".fa-gear"时显示它。我知道是("点击")是无效的,但我不知道还能做什么。
$(document).click(function() {
if($('.fa-gear').is(':clicked')) {
$('.options').show();
} else {
$('.options').hide();
}
});
<div class="options" style="display: none;">
<span>Option One</span>
</div>
<i class="fa fa-gear"></i>
测试事件目标是否.fa-gear
$(document).click(function(event) {
if($(event.target).is('.fa-gear')) {
$('.options').show();
} else {
$('.options').hide();
}
});
你可以检查 event.target :
$(document).click(function(event) {
if($(event.target).hasClass("fa-gear")) {
$('.options').show();
} else {
$('.options').hide();
}
});
您可以检查类的事件目标。
$(document).click(function(event) {
if($(event.target).hasClass("fa-gear")) {
$('.options').show();
} else {
$('.options').hide();
}
});
另一种方法是只监听 fa-gear 类的点击并切换可见性。我认为这对用户来说是一种更好的体验。
$('.fa-gear').click(function() {
$('.options').toggle();
});
如果您仍然想在单击文档时隐藏菜单但切换齿轮按钮,则可以将两者结合起来。
$(document).click(function(event) {
if($(event.target).hasClass("fa-gear")) {
$('.options').toggle();
} else {
$('.options').hide();
}
});
相关文章:
- 切换一个元素并将其余元素隐藏在同一包装类下
- 向下滚动时隐藏菜单,向上滚动时显示,适用于Chrome,不适用于Safari(手机)
- 如何使用jQuery显示/隐藏菜单
- 如何在IE中隐藏菜单栏,工具栏
- 使用 Javascript 单击 ESC 时隐藏菜单
- 使用 jQuery 显示和隐藏菜单
- CSS 动画在元素隐藏时暂停
- 检查元素是否可见,父元素隐藏在DOM中
- 使用 jQuery 显示/隐藏菜单
- 在鼠标悬停时显示/隐藏菜单
- 粘性导航元素 - 隐藏然后显示
- 移动隐藏菜单适用于jsfiddle,但不适用于在线.任何解决方案都会有所帮助
- 如何隐藏菜单?(不是“切换”)
- 基于滚动的Jquery显示/隐藏菜单
- 如何在单击项目时隐藏菜单,或在有人单击离开时隐藏菜单
- 如果未在查询中单击元素,则隐藏菜单
- 隐藏菜单元素不起作用
- Jquery滚动条隐藏菜单中的元素
- 聚焦元素隐藏在固定菜单后面
- 是否有一种方法,不让隐藏菜单中的所有元素加载页面启动