前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Jquery 事件冒泡

Jquery 事件冒泡

作者头像
Porschev
发布于 2018-01-16 03:37:29
发布于 2018-01-16 03:37:29
2.9K00
代码可运行
举报
运行总次数:0
代码可运行

什么是JS事件冒泡?:

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

如何来阻止Jquery事件冒泡?

通过一个小例子来解释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ 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 。从最里层冒泡到最外层。

如何来阻止?

1.event.stopPropagation(); 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript">

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

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

 2.return false;

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <script type="text/javascript">

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

 <script>

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

由此可以看出:

1.event.stopPropagation(); 

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

2.return false;

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

还有一种有冒泡有关的:

3.event.preventDefault(); 

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

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

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

友情提示:事件冒泡不一定是个坏的东西,有些情况会让不同层次捕获不同的事件!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-11-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python中导入numpy为什么错误_pycharm安装配置教程
今天网上复制了一个代码,其中有个 import numpy as np,运行时提示需要安装 numpy 库,然后我按照网上的方法,按顺序点击 File –> Settings –> Project: pythonProject –> Python Interpreter ,然后找到 + 那里准备添加库,如下:
全栈程序员站长
2022/09/27
1.1K0
python中导入numpy为什么错误_pycharm安装配置教程
初识Python并安装版本的Python
一、Linux下载安装python源码包 2.7.13 wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz tar zxvf Python-2.7.13.tgz cd Python-2.7.13/ ./configure make && make install 进入python: [[email protected] ~]# python -V //查看python的版本 Python 2.7.13 [[email p
老七Linux
2018/05/31
1.8K3
python中numpy.array_对numpy中array和asarray的区别详解
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。
用户7886150
2021/01/02
6480
python的环境变量的设置,安装库的两种方法,pycharm解释器设置字体大小,在DOS下运行python,无法定位动态库「建议收藏」
1.下载pycharm    a.下载地址 https://www.jetbrains.com/pycharm/download/#section=windows
全栈程序员站长
2022/09/25
1.2K0
python的环境变量的设置,安装库的两种方法,pycharm解释器设置字体大小,在DOS下运行python,无法定位动态库「建议收藏」
pycharm用pip安装numpy_numpy matplotlib
#本文适用性 如题啊,前一段时间学了些机器学习的东西,就想好好学下python,在10 款最好的 Python IDE中选来选去python IDE 还是选成了PyCharm ( JetBrains 开发的 Python IDE)。
全栈程序员站长
2022/09/27
1K0
pycharm用pip安装numpy_numpy matplotlib
pycharm中pip install如何使用_pycharm使用pip安装第三方库
在window下通过cmd(win+r 打开运行,然后输入 cmd,按下回车即可打开)方式来安装Python依赖包是一种方便快捷的方式。但是往往很多时候由于pyCharm与Python安装在不同的路径,即使你已经用cmd pip install的方式在你的电脑上安装了依赖包,pyCharm依然无法使用,这时候你可以选择在pyCharm上再装一遍这些依赖包,但这样你的电脑里就有了两份相同的依赖包,看着日益丰满的硬盘实在是于心不忍,只好另寻它法,本文就是要介绍一种一份依赖包大家一起用的方法。其实方法的本质也很简单,就是把pyCharm的解析器设置为你的Python解析器即可,设置方法请往下看。
全栈程序员站长
2022/09/25
3.7K0
pycharm中pip install如何使用_pycharm使用pip安装第三方库
如何解决pycharm创建项目报错Error occurred when installing package ‘x32dbg‘. Details.
本文全面探讨了在PyCharm中遇到的“Error occurred when installing package ‘x32dbg’”问题,并提供了通过更换Python版本来解决此问题的详细步骤。关键词包括PyCharm, x32dbg, Python版本兼容性, 软件包安装错误, 虚拟环境配置。本教程适用于所有级别的Python开发者,从入门新手到经验丰富的专业人士。
猫头虎
2024/05/24
1650
如何解决pycharm创建项目报错Error occurred when installing package ‘x32dbg‘. Details.
在pycharm中配置Anaconda以及pip源配置
在学习推荐系统、机器学习、数据挖掘时,python是非常强大的工具,也有很多很强大的模块,但是模块的安装却是一件令人头疼的事情。
全栈程序员站长
2022/08/28
1.7K0
python怎么安装pandas库_panda 数据处理
开发环境的搭建是一件入门比较头疼的事情,在上期的文稿基础上,增加一项Anaconda的安装介绍。Anaconda是Python的一个发行版本,安装好了Anaconda就相当于安装好了Python,并且里面还集成了很多Python科学计算的第三方库。比如我们需要用到的Pandas、numpy、dateutil等等,高达几百种。因此,安装了Anaconda,就不需要再专门的一个个安装第三方库。只要在使用Pycharm时调用Anaconda环境,便可以方便的使用其中的各种库。且各个库之间的依赖性很好,对于我们来讲可以大大简化安装流程。
全栈程序员站长
2022/09/27
3.3K0
python怎么安装pandas库_panda 数据处理
pycharm配置python运行环境_pycharm安装django
电脑是32位就选择32位 电脑是64位就选择64位 选择next就搞定了 最后一步时记得点击配置环境变量
全栈程序员站长
2022/09/27
9040
pycharm配置python运行环境_pycharm安装django
pip安装的包pycharm识别不了_手机上的python安装第三方库
无需命令,通过pycharm操作即可,找到“pytest”点击“install”安装即可(由于我已经安装)
全栈程序员站长
2022/09/27
1K0
pip安装的包pycharm识别不了_手机上的python安装第三方库
pycharm的配置_pycharm怎么配置python环境变量
计算机只能读懂 0 和 1 这样的二进制编码文件,所以需要一个东西将Python程序解释成计算机可以读懂并执行的二进制文件,这个东西就是Python解释器。
全栈程序员站长
2022/09/27
1.7K0
pycharm的配置_pycharm怎么配置python环境变量
python第三方库的安装方法有哪些_如何安装python的第三方库
在pyhton的学习中,相信大家通常都会碰到第三方库的安装问题,这个问题对于很多初学者而言头疼不已。这里我做一些简单的总结,如何正确高效地安装第三方库,少走弯路(毕竟都是我亲自踩过的坑,所以特地来总结一下,方便以后回顾和总结)!
全栈程序员站长
2022/09/27
2.7K0
python第三方库的安装方法有哪些_如何安装python的第三方库
为什么pycharm下载不了第三方库_pycharm详细使用教程
下载网站: https://pypi.org/ 或https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
全栈程序员站长
2022/09/25
2.5K0
为什么pycharm下载不了第三方库_pycharm详细使用教程
Python第三方库安装和卸载
系统:Windows 7 版本:Python 3.5 Python是一门简洁、优雅的语言,丰富的第三方库能让我们很多的编程任务变得更加简单。对于想要用Python进行数据分析,就需要强大的Python第三库如numpy、pandas、matplotlib、scipy必不可少,而Python本身除标准库外都需要另行安装,安装这些第三方库(包)成为许多人的问题,下面我们以安装requests包为实例来看如何安装这些包,如果需要安装其他包,请把requests替换为想要安装的包名即可。 安装第三方库 虽然Pyt
CDA数据分析师
2018/02/05
2.9K0
Python第三方库安装和卸载
Anaconda–Pycharm安装教程[通俗易懂]
因为不想每次下载安装的时候都要去找博客,干脆就参考别人的博客,把自己需要的写下来了。
全栈程序员站长
2022/09/27
1K0
Anaconda–Pycharm安装教程[通俗易懂]
pygame的安装
我使用的是py3.8,所以选择cp38。里面包括ios、linux和windows,注意选择64/32位。 2、将pygame复制到项目所在的文件夹中,如图:
全栈程序员站长
2022/08/31
6.4K0
pygame的安装
django pycharm_pycharm调试django
主要是在开发过程中一些采坑和记录,整理一下资料以防自己以后忘了,也为正在初学或者还未特别熟练使用django的同学能够避开这些,且能够系统性的学习django的使用,这里就不写目录了按照我自己的开发顺序来,大家看到专栏里面的文章顺序就是我的目录了,在本专栏里的代码争取让大家拿到就能用,做一个伸手党,网上好多代码不知道是版本原因还是其他简直是无语,不能用还一堆bug。
全栈程序员站长
2022/09/27
4350
django pycharm_pycharm调试django
Python 多环境搭建方法
大多数小伙伴在第一次接触 python 的时候都会被它强大的包所吸引,想要写一个网站可以使用 Django ,想要做数学运算就想到了 Numpy ,想做数据分析可以用 Pandas 等等
用户6825444
2020/03/18
1.4K0
Python 多环境搭建方法
人生苦短,我用PyCharm
机器之心之前也没系统地介绍过 PyCharm,怎样配置环境、怎样 DeBug、怎样同步 GitHub 等等可能都是通过经验或者摸索学会的。在本文中,我们并不会提供非常完善的指南,但是会介绍 PyCharm 最主要的一些能力,了解这些后,后面就需要我们在实践中再具体学习了。
小小詹同学
2019/09/10
2.6K0
人生苦短,我用PyCharm
推荐阅读
相关推荐
python中导入numpy为什么错误_pycharm安装配置教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档