概述
demo.html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
body,html {
height: 100%;
padding: 0;
margin: 0;
}
.mask {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
display: none;
background: rgba(0, 0, 0, 0.6);
}
.login {
width: 400px;
height: 300px;
cursor: pointer;
background-color: #fff;
margin: 200px auto;
}
</style>
</head>
<body>
<div class="mask">
<div class="login" id="login"></div>
</div>
<a href="#">注册</a>
<a href="#">登陆</a>
<script>
//需求:点击登录按钮,显示模态框。点击出去login以外的所有盒子隐藏模态框。
//步骤:
//1.给登录绑定事件
//2.给document绑定事件,因为可以冒泡,只要判断,点击的不是login,那么隐藏模态框
//1.给登录绑定事件
var mask = document.getElementsByClassName("mask")[0];
var a = document.getElementsByTagName("a")[1];
a.onclick = function (event) {
//显示模态框
mask.style.display = "block";
//阻止事件冒泡
event = event || window.event;
if(event && event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
//2.给document绑定事件,因为可以冒泡,只要判断,点击的不是login,那么隐藏模态框
document.onclick = function (event) {
//获取点击按钮后传递过来的值。
event = event || window.event;
//获取触发事件的最子集元素 兼容写法
//var aaa = event.target || event.srcElement;
var aaa = event.target?event.target:event.srcElement; //获取触发事件的最子集元素 兼容写法
console.log(event.target);
//判断目标值的ID是否等于login,如果等于不隐藏盒子,否则隐藏盒子。
if(aaa.id !== "login"){
mask.style.display = "none";
}
}
</script>
</body>
</html>
最后
以上就是感动小兔子为你收集整理的JavaScript 模态框 (阻止事件冒泡,event.target)的全部内容,希望文章能够帮你解决JavaScript 模态框 (阻止事件冒泡,event.target)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复