jquery - 单击元素外部时jQuery隐藏弹出窗口或它的孩子不起作用
问题描述
当我点击它之外时,我似乎无法弄清楚如何隐藏“目标”元素。“文档”点击事件不会正确触发有什么想法吗?
$(".contact").click(function() {
$(".target").toggle();
});
$(document).on('click', function(event) {
if (!$(event.target).closest('#menucontainer').length) {
$(".target").hide();
}
});
.target {
display: none;
border: solid grey 2px;
box-shadow: grey 2px 2px;
position: fixed;
width: 75%;
left: 50%;
top: 30%;
-ms-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="contact btn btn-primary">Click </button>
<div id="menucontainer">
<div class="target">carter</div>
</div>
解决方案
您的示例有效,您只需要检查按钮是否被单击,如下所示:
if(!$(event.target).closest('#menucontainer').length&&!event.target.classList.contains('contact')) {
$(".target").hide();
}
$(".contact").click(function() {
$(".target").toggle();
});
$(document).on('click', function(event) {
if(!$(event.target).closest('#menucontainer').length&&!event.target.classList.contains('contact')) {
$(".target").hide();
}
});
.target {
display: none;
border: solid grey 2px;
box-shadow: grey 2px 2px;
position: fixed;
width: 75%;
left: 50%;
top: 30%;
-ms-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="contact btn btn-primary">Click </button>
<div id="menucontainer">
<div class="target">carter</div>
</div>
推荐阅读
- ruby-on-rails - 如何将原始 SQL 附加到现有的 Rails ActiveRecord 链?
- regex - 如何捕获特定单词的所有条目,但不是另一个已知单词的一部分?
- python-3.x - 将 pandas 中的行与每个给定的列对齐
- html - CSS 媒体查询和弹性方向
- python - 如何修复 Bowtie 和 Python 错误 (Errno2)?
- swift - NavigationBar prefersLargeTitle 不起作用
- html - 在 .net Core 中填充模型的存储过程
- r - UseMethod(“sentiment”)中的错误:没有适用于“sentiment”的方法应用于“factor”类的对象
- java - java map dot put在for循环中不起作用
- python - Selenium 有时不单击复选框