一个小例子解释如何来阻止Jquery事件冒泡_jquery

什么是JS事件冒泡?

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

如何来阻止Jquery事件冒泡?

通过一个小例子来解释

<!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" rel="external nofollow" rel="external nofollow" mce_href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" onclick="alert('我是最里层!')">点击我</a>
</div>
</div>
</form>
</body>
</html>

比如上面这个页面,
分为三层:divOne是第外层,divTwo中间层,hr_three是最里层;
他们都有各自的click事件,最里层a标签还有href属性。

运行页面,点击“点击我”,会依次弹出:我是最里层---->我是中间层---->我是最外层
---->然后再链接到百度.

这就是事件冒泡,本来我只点击ID为hr_three的标签,但是确执行了三个alert操作。
事件冒泡过程(以标签ID表示):hr_three----> divTwo----> divOne 。从最里层冒泡到最外层。

如何来阻止?

1.event.stopPropagation();

<script type="text/javascript">
$(function() {
$("#hr_three").click(function(event) {
event.stopPropagation();
});
});
<script>

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

2.return false;

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

<script type="text/javascript">
$(function() {
$("#hr_three").click(function(event) {
return false;
});
});
<script>

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

由此可以看出:

1.event.stopPropagation();

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

2.return false;

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

还有一种有冒泡有关的:

3.event.preventDefault();

如果把它放在头部A标签的click事件中,点击“点击我”。
会发现它依次弹出:我是最里层---->我是中间层---->我是最外层,但最后却没有跳转到百度

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索事件冒泡
jquery阻止事件冒泡、jquery 阻止冒泡、jquery 阻止向下冒泡、jquery on 阻止冒泡、jquery click阻止冒泡,以便于您获取更多的相关知识。

时间: 2024-10-27 10:51:32

一个小例子解释如何来阻止Jquery事件冒泡_jquery的相关文章

理解jquery事件冒泡_jquery

一.什么是jquery事件冒泡 在很多教材或者手册都可能会涉及到事件冒泡的概念,老手来说这当然是最基本的概念,但往往对于初学者可能比较陌生或者说从来没有听说过.下面就结合代码实例来简单介绍一下什么是事件冒泡. 代码实例如下: <html> <head> <meta charset=" gb2312"> <title>事件冒泡</title> <script type="text/javascript"

jquery 事件冒泡的介绍以及如何阻止事件冒泡_jquery

什么是JS事件冒泡? 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window). 如何来阻止Jquery事件冒泡? 通过一个小例子来解释 复制代码 代码如下: <%@PageLanguage="C#&q

c语言基础-a与&amp;amp;amp;a比较时一个小例子的输出问题

问题描述 a与&a比较时一个小例子的输出问题 输出:p3+1=BCD,p4+1=BCD 本来以为输出应该是B int main(){ char a[5]={'A','B','C','D'}; char(*p3)[1]=&a; char(*p4)[1]=a; printf("p3+1=%s,p4+1=%s",p3+1,p4+1); return 0; } 另问:char(*p3)[1]=&a;匿名数组长度>=5时,是否溢出?请详细解释. 解决方案 试试pri

深入理解jQuery中的事件冒泡_jquery

1.什么是冒泡 eg: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>事件冒泡</title> <script src="

阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)_javascript技巧

cancelBubble在IE下有效 stopPropagation在Firefox下有效 复制代码 代码如下: <!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

【JSP开发】有关session的登录注销的一个小例子

下面是一个session的应用的小例子,是用来注销登录的 登陆界面的代码: login.html: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>login.html</title> <meta http-equiv="keywords" content="keywor

netbeans6.5开发JSF+Hibernate的一个小例子(原创)

问题描述 只是一个简单的小例子,希望能对初学者有点帮助我也只是一个初学者,其中的错误还请大家指出http://www.cnblogs.com/halgogo/archive/2009/01/11/1373730.html 解决方案 解决方案二:加油解决方案三:我也是在初学,多多交流解决方案四:加油!

Gridview行上下移动自己做的一个小例子(第一种方法)

今天没有什么事做,就写了一个GridView行上下移动的小例子. 方法有好多种,我先写第一种. 没有什么技术含量 思路: 把要上移或下移的id 与它的临近行的id进行互换 效果: 前台页面: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView2.aspx.cs" Inherits="WebApplication3.GridView2"

activity初探(基于kft-activiti-demo的一个小例子)

最近老板心血来潮要搞基于activiti的工作流,没办法,只能现学,看了两周,一个小总结. 前提准备: - eclipse安装acidity-designer插件 - 了解bpmn2.0基本知识 - 下载activiti,跑一跑其中demo - 下载咖啡兔中的kft-activiti-demo 基于kft-activiti-demo 中的leave-formkey改造,主要是为了学习bpmn流程图表制作,发布流程,对应的api,相关数据库表,顺便复习下springmvc. Bpmn流程图表制作