JS实现点击Div区域外隐藏Div:事件冒泡与阻止机制
作者:竹影时间:2026-10-28 12:38:32浏览:594
本文详解如何利用JavaScript事件冒泡机制实现点击Div外部隐藏Div的功能。通过解析事件传播路径,介绍stopPropagation()与cancelBubble属性的跨浏览器兼容写法,并结合jQuery的stopImmediatePropagation()方法,提供完整的代码示例与实现逻辑。
JavaScript事件冒泡机制解析
首先了解JavaScript的事件模型,其核心机制为事件冒泡。当某个DOM元素上的onclick事件被触发时,该事件会沿着节点树向父级节点逐级向上传播,直到遇到绑定了click事件的父节点为止;若全程未找到绑定事件,则一直传播至文档根节点。
跨浏览器阻止事件冒泡的方法
阻止冒泡:1、stopPropagation()对于非IE浏览器。2、cancelBubble属性为true,对于IE浏览器,
若使用jQuery框架,可直接调用兼容各浏览器的event.stopImmediatePropagation()方法来统一处理事件冒泡的阻止。
jQuery实现点击外部隐藏Div的完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="js/jquery-1.4.4.min.js" ></script>
<title></title>
</head>
<style type="text/css">
body
{
background-color:#999999;
}
#myDiv
{
background-color:#FFFFFF;
width:250px;
height:250px;
display:none;
}
</style>
<body>
<input id="btn" type="button" value="显示DIV" />
<div id="myDiv">
This is a div;
</div>
</body>
<script type="text/javascript">
var myDiv = $("#myDiv");
$(function ()
{
$("#btn").click(function (event)
{
showDiv();//调用显示DIV方法
$(document).one("click", function ()
{//对document绑定一个影藏Div方法
$(myDiv).hide();
});
event.stopPropagation();//阻止事件向上冒泡
});
$(myDiv).click(function (event)
{
event.stopPropagation();//阻止事件向上冒泡
});
});
function showDiv()
{
$(myDiv).fadeIn();
}
</script>
作者最新文章
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
Phaser.js 与 PixiJS、Cocos Creator 的技术选型对比
2026-11-05 08:36:30
