[英]Show element on click, Hide when click on a different div
标题说明了一切。 单击时显示元素没有问题。
但是每当我点击其他地方时,我都想隐藏它。 一个很好的例子是本网站标题中的“StackExchange”标签。 当我点击它时,它会显示其他选项。 但是当我点击别处时,它会隐藏。
window.onclick = function() { alert('it was so simple, wasn\\'t it?'); };
可以在点击某物时添加click事件,判断是否属于html:
function addListener(element, e, fn) { //add event function,browser compatible
if (element.addEventListener) {
element.addEventListener(e, fn, false);
} else {
element.attachEvent("on" + e, fn);
}
}
addListener(document, "click",
function(evt) {
var evt = window.event ? window.event: evt,
target = evt.srcElement || evt.target;
if (target.id == "showDiv") { //the div you want to show
document.getElementById("myDiv").style.display = "";
return;
}
else {
//judge target belongs to html or not,You may change condition here
while (target.nodeName.toLowerCase() != "div" && target.nodeName.toLowerCase() != "html") {
target = target.parentNode;
}
if (target.nodeName.toLowerCase() == "html") {
document.getElementById("myDiv").style.display = "none";
}
}
})
Michal Leszczyk 是对的,使用窗口处理程序隐藏 div
当您在单击时显示 div 时,也可以使用 event.stopPropagation()。 防止同时隐藏
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.