阻止事件冒泡——商品编辑

阻止事件冒泡

冒泡事件流
当事件在某一DOM元素被触发时,例如用户在客户名字节点上点击鼠标,事件将跟随着该节点继承自的各个父节点冒泡穿过整个的DOM节点层次,直到它遇到依附有该事件类型处理器的节点,此时,该事件是onclick事件。在冒泡过程中的任何时候都可以终止事件的冒泡,在遵从W3C标准的浏览器里可以通过调用事件对象上的stopPropagation()方法,在Internet Explorer里可以通过设置事件对象的cancelBubble属性为true。如果不停止事件的传播,事件将一直通过DOM冒泡直至到达文档根。

if(e.stopPropagation) { //W3C阻止冒泡方法  
    e.stopPropagation();  
} else {  e.cancelBubble = true; //IE阻止冒泡方法  
} 


具体实例请看下面的效果:

事件冒泡:
点击复选框时,不能选中及取消。

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>事件冒泡</title> <style> *{ margin: 0px; padding: 0px; list-style: none; color: #333; } body{ padding-top: 20px; height: 1000px; } .cfl{*zoom:1;} .cfl:after{content:"\0020";display:block;height:0;clear:both;overflow:hidden;visibility:hidden;} .main{width: 800px;margin: 20px auto; text-align: center;} .main li{ float: left; width: 25%; height: 240px; cursor: pointer;} </style> </head> <body> <div class="main"> <ul id="acc" class="cfl"> <li gid="1001" gname="商品1"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品1</a></p> <input type="checkbox" name="name1" /> </li> <li gid="1002" gname="商品2"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品2</a></p> <input type="checkbox" name="name2" /> </li> <li gid="1003" gname="商品3"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品3</a></p> <input type="checkbox" name="name3" /> </li> <li gid="1004" gname="商品4"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品4</a></p> <input type="checkbox" name="name4" /> </li> <li gid="1005" gname="商品5"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品5</a></p> <input type="checkbox" name="name5" /> </li> <li gid="1006" gname="商品6"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品6</a></p> <input type="checkbox" name="name6" /> </li> <li gid="1007" gname="商品7"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品7</a></p> <input type="checkbox" name="name7" /> </li> <li gid="1008" gname="商品8"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品8</a></p> <input type="checkbox" name="name8" /> </li> </ul> </div> <script type="text/javascript" src="http://files.cnblogs.com/kuikui/jquery.js"></script> <script type="text/javascript"> var acc = { init: function(){ var _this = this; this.acc = $("#acc"); this.mcheck = "unchecked"; _this.events(); }, events: function(){ var _this = this; _this.liAction(); }, liAction: function(){ var _this = this; _this.acc.find("li").click(function(){ if($(this).find("input").attr("checked")){ $(this).find("input").removeAttr("checked"); } else{ $(this).find("input").attr("checked",true); } }); } }; acc.init(); </script> </body> </html>

运行代码

阻止事件冒泡:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>事件冒泡</title> <style> *{ margin: 0px; padding: 0px; list-style: none; color: #333; } body{ padding-top: 20px; height: 1000px; } .cfl{*zoom:1;} .cfl:after{content:"\0020";display:block;height:0;clear:both;overflow:hidden;visibility:hidden;} .main{width: 800px;margin: 20px auto; text-align: center;} .main li{ float: left; width: 25%; height: 240px; cursor: pointer;} </style> </head> <body> <div class="main"> <ul id="acc" class="cfl"> <li gid="1001" gname="商品1"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品1</a></p> <input type="checkbox" name="name1" /> </li> <li gid="1002" gname="商品2"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品2</a></p> <input type="checkbox" name="name2" /> </li> <li gid="1003" gname="商品3"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品3</a></p> <input type="checkbox" name="name3" /> </li> <li gid="1004" gname="商品4"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品4</a></p> <input type="checkbox" name="name4" /> </li> <li gid="1005" gname="商品5"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品5</a></p> <input type="checkbox" name="name5" /> </li> <li gid="1006" gname="商品6"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品6</a></p> <input type="checkbox" name="name6" /> </li> <li gid="1007" gname="商品7"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品7</a></p> <input type="checkbox" name="name7" /> </li> <li gid="1008" gname="商品8"> <a><img alt="" width="180px" height="180px" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test1.jpg" /></a> <p><a>商品8</a></p> <input type="checkbox" name="name8" /> </li> </ul> </div> <script type="text/javascript" src="http://files.cnblogs.com/kuikui/jquery.js"></script> <script type="text/javascript"> var acc = { init: function(){ var _this = this; this.acc = $("#acc"); this.mcheck = "unchecked"; _this.events(); }, events: function(){ var _this = this; _this.liAction(); }, liAction: function(){ var _this = this; _this.acc.find("li").click(function(){ if($(this).find("input").attr("checked")){ $(this).find("input").removeAttr("checked"); } else{ $(this).find("input").attr("checked",true); } }); _this.acc.find("input").click(function(e){ var _this = this; e = e || window.event; if(e.stopPropagation) { //W3C阻止冒泡方法 e.stopPropagation(); } else { e.cancelBubble = true; //IE阻止冒泡方法 } if($(this).attr("checked")){ $(this).attr("checked",true); } else{ $(this).removeAttr("checked"); } }); } }; acc.init(); </script> </body> </html>

运行代码

转载于:https://www.cnblogs.com/kuikui/p/3237270.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter 进阶教程

2019 年第 65 篇文章&#xff0c;总第 89 篇文章本文大约 7500 字&#xff0c;建议收藏阅读原题 | Tutorial: Advanced Jupyter Notebooks作者 | Benjamin Pryke译者 | kbsc13("算法猿的成长"公众号作者)原文 | https://www.dataquest.io/blog/advanced-jupyter-note…

多个表添加几个相同的字段

最近要整理一个论坛数据结构&#xff08;其实就是Discuz!nt&#xff09;&#xff0c;按公司规定每个表后面要增加三个字段&#xff0c;备注&#xff0c;创建人&#xff0c;创建时间&#xff0c;修改人&#xff0c;修改时间&#xff0c;公司规定啊&#xff0c;虽然我觉得这几个字…

Jupyter进阶教程

原题 | Tutorial: Advanced Jupyter Notebooks 作者 | Benjamin Pryke 译者 | kbsc13("算法猿的成长"公众号作者) 原文 | https://www.dataquest.io/blog/advanced-jupyter-notebooks-tutorial/ 声明 | 翻译是出于交流学习的目的&#xff0c;欢迎转载&#xff0c…

C#中读取文件内容本文分步介绍了如何从文本文件

------- <a href"http://***" target"blank">Windows Phone 7手机开发</a>、<a href"http://***" target"blank">.Net培训</a>、期待与您交流&#xff01; ------- C#中读取文件内容本文分步介绍了如何从文本…

jQuery Mobile高手必备的十大技巧和代码片段

本文转自51ito布加迪编译版本: http://mobile.51cto.com/hot-276160.htm 其中未发现英文原作链接&#xff0c;为尊重版权&#xff0c;google之后附上: http://www.webdesignerdepot.com/2011/05/10-handy-jquery-mobile-tips-and-snippets-to-get-you-started/ jQuery Mobile高…

PyTorch 系列 | 数据加载和预处理教程

图片来源&#xff1a;Unsplash&#xff0c;作者&#xff1a;Damiano Baschiera2019 年第 66 篇文章&#xff0c;总第 90 篇文章本文大约 8000 字&#xff0c;建议收藏阅读原题 | DATA LOADING AND PROCESSING TUTORIAL作者 | Sasank Chilamkurthy译者 | kbsc13("算法猿的成…

PyTorch系列 | 如何加快你的模型训练速度呢?

图片来源&#xff1a;Pixabay&#xff0c;作者&#xff1a;talha khalil2019 年第 67 篇文章&#xff0c;总第 91 篇文章本文大约 6500 字&#xff0c;建议收藏阅读&#xff01;原题 | Speed Up your Algorithms Part 1 — PyTorch作者 | Puneet Grover译者 | kbsc13("算法…

Leetcode 系列 | 反转链表

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识最近会更新一个 leetcode 的刷题系列&#xff0c;每次更新一道题目&#xff0c;并且通过画图辅助介绍自己的解题思路&#xff0c;大家如果有更好的解题思路也欢迎在文末留言&#xff0c;或…

Android UI开发第二十九篇——Android中五种常用的menu(菜单)

Android Menu在手机的应用中起着导航的作用&#xff0c;作者总结了5种常用的Menu。 1、左右推出的Menu 前段时间比较流行&#xff0c;我最早是在海豚浏览器中看到的&#xff0c;当时耳目一新。最早使用左右推出菜单的&#xff0c;听说是Facebook&#xff0c;我不确定消息的真实…

深度学习的一些经验总结和建议| To do v.s Not To Do

关注&置顶“Charlotte数据挖掘”每日9:00&#xff0c;干货速递&#xff01;昨天看到几篇不同的文章写关于机器学习的to do & not to do&#xff0c;有些观点赞同&#xff0c;有些不赞同&#xff0c;是现在算法岗位这么热门&#xff0c;已经不像几年前一样&#xff0c;可…

cocos2d-x 学习资料(很全)

cocos2d-x quick-cocos2d-x官网 http://cn.quick-x.com/?p235 TexturePacker 不错的图片组合工具&#xff08;教程&#xff09; http://hi.baidu.com/longfan365/item/5f2ac24478576ea961d7b9d3 cocosbuilder教程 &#xff08;杨世玲的博客&#xff09; http://young40.github…

PyTorch系列 | 快速入门迁移学习

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识图片来源&#xff1a;Pexels&#xff0c;作者&#xff1a;Arthur Ogleznev2019 年第 68 篇文章&#xff0c;总第 92 篇文章本文大约 6800 字&#xff0c;建议收藏阅读原题 | TRANSFER LEAR…

poj 2486 树形dp

思路&#xff1a;这题是裸的树形dp。dp[i][j]表示第i个节点花费j步并且从子节点返回&#xff0c;能得到的最大苹果数&#xff1b;nback[i[j]表示第i个节点花费j步并且进入某个子节点不返回&#xff0c;能得到的最大苹果数。那么我们就能得到动态方程: 根节点为u&#xff0c;子节…