分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

JS——冒泡案例

发布时间:2023-09-06 01:28责任编辑:熊小新关键词:冒泡

模态框

1、因为a链接和和顶级document都注册了单击事件,所以要组织a链接冒泡,不然又会从document的单击事件走一遍

2、在document的单击事件中,只需要判断触发事件的目标元素是不是白色盒子部分就行了

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title> ???<style> ???????* { ???????????padding: 0; ???????????margin: 0; ???????} ???????body, html { ???????????height: 100%; ???????} ???????.mask { ???????????width: 100%; ???????????height: 100%; ???????????position: fixed; ???????????top: 0; ???????????left: 0; ???????????background: rgba(0, 0, 0, 0.6); ???????????display: none; ???????} ???????.login { ???????????width: 200px; ???????????height: 200px; ???????????background: white; ???????????margin: 200px auto; ???????????border: 3px solid #FFA25E; ???????} ???</style></head><body><a href="#">注册</a><a href="#">登陆</a><div class="mask"> ???<div class="login" id="login"></div></div><script> ???//需求:点击登陆a链接,显示模态框,之后点击除了中间白色登陆框部分,都可以将模态框部分隐藏 ???var a = document.getElementsByTagName("a")[1]; ???var mask = document.getElementsByTagName("div")[0]; ???a.onclick = function (ev) { ???????ev = ev || window.event; ???????mask.style.display = "block"; ???????if (ev || ev.stopPropagation) { ???????????ev.stopPropagation(); ???????} else { ???????????ev.cancelBubble = true; ???????} ???} ???document.onclick = function (ev) { ???????ev = ev || window.event; ???????var targetId = ev.target ? ev.target.id : ev.srcElement.id; ???????if (targetId !== "login") { ???????????mask.style.display = "none"; ???????} ???}</script></body></html>

事件委托

1、普通注册事件没有办法为新创建的元素绑定事件。所以我们要使用冒泡的特性,事件委托。

2、

JS——冒泡案例

原文地址:http://www.cnblogs.com/wuqiuxue/p/7988074.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved