我正在尝试创建一个方法来显示一个div点击一个按钮,并隐藏它时,不在焦点或当用户点击以外的div。
我已经设法添加了一个按钮,可以显示隐藏的div,但我不知道如何使它隐藏时,失去了焦点。
我读过这个:Hide a DIV when it loses focus/blur
...和其他文章,但我不能遵循他们使它工作..
请看我的代码:
function openCardsList() {
let window = document.getElementById("anchor-cards-list");
window.style.display = "block";
}
$(document).not("#anchor-cards-list").click(function() {
$('#anchor-cards-list').hide();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<div class="collapse" id="anchor-cards-list">Lorem Ipsum</div>
<button id="anchor-open-cards-list-btn" onclick="openCardsList();">Collapse Maincard</button>
任何帮助都将不胜感激。先谢谢你!
5条答案
按热度按时间wwtsj6pe1#
您可以使用以下代码:
并将onclick事件添加到父div
bnl4lu3b2#
我个人会把事情简单化,把关注点分开,在按钮上添加一个事件监听器(click)来显示你的div,在div上添加一个事件监听器(blur)来隐藏它。
然后showDiv和hideDiv只处理元素的可见性。
41zrol4v3#
简单使用jquery
使用toggle()代替show/hide,因为它更清晰和简单。
或
或
对于onblue,也可以使用以下代码
在父div中添加onclick事件
x4shl7ld4#
我更喜欢在函数之外制作let窗口,这样你就可以在任何需要的时候使用它。而且如果你只在onclick和onblur时为handle show/hide div制作这个窗口,你就不需要jquery。默认的javascript可以提供这些事件操作。
script.js
index.html
jhdbpxl95#
const phoneCross=文档.getElementById(“电话交叉”).addEventListener(“单击”,函数(){