Jquery 事件冒泡

[color=green]什么是JS事件冒泡?:[/color]

在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。 (摘自网络)



[color=red][size=medium]如何来阻止Jquery事件冒泡?[/size][/color]



通过一个小例子来解释

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Porschev---Jquery 事件冒泡</title>

<script src="jquery-1.3.2-vsdoc.js" type="text/javascript"></script>

</head>
<body>
<form id="form1" runat="server">
<div id="divOne" onclick="alert('我是最外层');">
<div id="divTwo" onclick="alert('我是中间层!')">
<a id="hr_three" href="http://www.baidu.com" mce_href="http://www.baidu.com" onclick="alert('我是最里层!')">点击我</a>
</div>
</div>
</form>
</body>
</html>



比如上面这个页面,

分为三层:divOne是第外层,divTwo中间层,hr_three是最里层;

他们都有各自的click事件,最里层a标签还有href属性。



运行页面,点击“点击我”,会依次弹出:我是最里层---->我是中间层---->我是最外层

---->然后再链接到百度.



这就是事件冒泡,本来我只点击ID为hr_three的标签,但是确执行了三个alert操作。

事件冒泡过程(以标签ID表示):hr_three----> divTwo----> divOne 。从最里层冒泡到最外层。



[color=red][size=medium]如何来阻止?[/size][/color]



[color=red]1.event.stopPropagation(); [/color]



<script type="text/javascript">

$(function() {
$("#hr_three").click(function(event) {
event.stopPropagation();
});
});


<script>

再点击“点击我”,会弹出:我是最里层,然后链接到百度





[color=red] 2.return false;[/color]

如果头部加入的是以下代码


 <script type="text/javascript">

$(function() {
$("#hr_three").click(function(event) {
return false;
});
});

<script>

再点击“点击我”,会弹出:我是最里层,但不会执行链接到百度页面





由此可以看出:

1.event.stopPropagation();

事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转)





2.return false;

事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转)





还有一种有冒泡有关的:

3.event.preventDefault();

如果把它放在头部A标签的click事件中,点击“点击我”。

会发现它依次弹出:我是最里层---->我是中间层---->我是最外层,但最后却没有跳转到百度



它的作用是:事件处理过程中,不阻击事件冒泡,但阻击默认行为(它只执行所有弹框,却没有执行超链接跳转)





[color=red][size=large]友情提示:事件冒泡不一定是个坏的东西,有些情况会让不同层次捕获不同的事件![/size][/color]


作 者: Porschev[钟慰]
出 处: http://www.cnblogs.com/zhongweiv/
微 博: http://weibo.com/porschev
欢迎任何形式的转载,但请务必注明原文详细链接
智慧工地解决方案旨在通过信息化手段提高建筑行业的监管水平和施工企业的管理效率。该方案响应了国家“十二五”规划中提出的全面提高行业信息化水平的要求,通过建立统一的建筑施工安全生产监管信息平台,解决政府监管部门面临的监管难题,如环境复杂、人员复杂、施工地点分散等。同时,它也帮助建筑企业应对劳动力流动大、成本上升、劳务纠纷等问题,通过信息化手段提升施工质量和安全管理。 智慧工地的整体思路是通过信息化建设,为政府职能部门提供监管手段,为施工企业提供管理支撑。这包括视频监控、实名制考勤、人员定位和免费WIFI上网等模块。视频监控系统能够实时监控工地现场,确保施工进度和安全;实名制考勤系统则确保合法用工,提高劳务管理的效率;人员定位系统有助于追踪工地人员,增强安全管理;免费WIFI上网则为工人提供娱乐和信息获取的途径,提高生活质量。 该方案的实施,不仅降低了政府的监管成本,提高了监管效率,还帮助建筑企业实时了解施工现场的安全和污染情况,掌握施工进度,降低管理成本,提升施工质量。此外,外来务工人员也能享受到信息化带来的便利,如通过智能终端免费上网,享受健康娱乐方式。 智慧工地项目的优势在于其专业的团队和丰富的实施经验。项目团队整合了全方位的资源,打造了行业信息化解决方案,并提供了个性化的行业信息化应用定制。此外,项目还依托于专业的运营团队和丰富的运营经验,提供了通信类系统和IT系统维护等服务外包。 最后,智慧工地项目通过政府牵头、企业投资、资源共享的合作模式,实现了普惠于民的目标。例如,武清区建委智慧工地项目通过视频监控和手机考勤系统,规范了建筑市场秩序,为保证工程质量奠定了基础,同时有效降低了监管成本,提高了建筑工地突发事件的应急处置能力。这种合作模式不仅提升了建筑行业的整体效率,也为构建美丽城市和实现中国梦做出了贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值