事件委托与阻止冒泡阻止其父元素事件触发


Posted in Javascript onSeptember 02, 2014

简单说下事件委托与阻止冒泡

html:

<ul class="clearfix" data-type="cityPick"> 
<li class="active_sort_opts" data-id="0">全部</li> 
<li data-id="88">纽约</li> 
<li data-id="119">洛杉矶</li> 
<li data-id="138">拉斯维加斯</li> 
<li data-id="84">夏威夷</li> 
<li data-id="120">旧金山</li> 
<li data-id="105">奥兰多</li> 
<li data-id="118">西雅图</li> 
</ul>

js:

$("ul[data-type='cityPick']").on('click',function(){ 
alert("父元素ul被点击"); 
}); 
$("ul[data-type='cityPick']").on('click','li',function(){ 
alert("子元素li被点击"); 
});

当点击具体的li元素时,发现ul的事件也被触发了,这是我们不想看到的。

解决:

$("ul[data-type='cityPick']").on('click',function(){ 
alert("父元素ul被点击"); 
}); 
$("ul[data-type='cityPick']").on('click','li',function(e){ 
e.stopPropagation();//阻止冒泡 
alert("子元素li被点击"); 
});

加一句阻止冒泡即可。

Javascript 相关文章推荐
Js 获取Gridview选中行的内容操作步骤
Feb 05 Javascript
js控制web打印(局部打印)方法整理
May 29 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
jQuery插件jRumble实现网页元素抖动
Jun 05 Javascript
底部悬浮通栏可以关闭广告位的实现方法
Jun 01 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
解决jquery版本冲突的有效方法
Sep 02 #Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 #Javascript
引用其它js时如何同时处理多个window.onload事件
Sep 02 #Javascript
JS中自定义定时器让它在某一时刻执行
Sep 02 #Javascript
理解javascript中的回调函数(callback)
Sep 02 #Javascript
详解js闭包
Sep 02 #Javascript
jquery delay()介绍及使用指南
Sep 02 #Javascript
You might like
优化使用mysql存储session的php代码
2008/01/10 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
PHP生成plist数据的方法
2015/06/16 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python3.3实现乘法表示例
2014/02/07 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
对Python 语音识别框架详解
2018/12/24 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
pycharm配置git(图文教程)
2019/08/16 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
戴森英国官网:Dyson英国
2019/05/07 全球购物
学生会离职感言
2014/02/11 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书