1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 阻止子元素的点击事件

阻止子元素的点击事件

时间:2020-01-06 04:40:23

相关推荐

阻止子元素的点击事件

web前端|js教程

JavaScript,点击事件

web前端-js教程

bux源码php,vscode搜索不到插件,ubuntu 解压成,tomcat 8 稳定吗,定向爬虫和非定向爬虫区别,php音乐管理,怎么提高seo营销霸屏,网站中图片飞入入特效,天猫商城模板lzw

微信版网页源码下载,vscode写代码没有配色,ubuntu 手机镜像,tomcat文档官网,使用Jumpny爬虫,传智播客php北京,福州一般seo技术,在线帮助手册网站源码,html5 新闻专题页模板lzw

问题描述:

今天在调试页面的时候遇到一个奇怪的现象,在一个父元素上面定义了一个点击事件,在父元素下面是一个一个的li标签,这上面没有任何点击事件。现象是当点击其中一个li标签时会发生一些动作。

如何搭建电影网站源码,安装ubuntu台电,tomcat9 url中文,爬虫巅峰时期,php程序测试工具,seo优化之关键词选择策略lzw

这个问题困惑了我好久,我对代码翻了好几遍,最后才确定是,点击子元素时也将会触发父元素的事件。当时我把这种现象是在父元素上定义点击事件时,实际上是在这个区域中都定义了点击事件,所以当点击子元素时,实际上也是在点击父元素。

但是更科学的解释是:如果在点击子元素时,如果子元素中没有点击事件,那么该点击事件将自动冒泡到父元素,直到能找到一个可以处理点击事件的函数。

那这种解释可以带来的好处是,可以有方法来屏蔽这种现象,那就是阻止点击事件的冒泡。对于jQuery而言,就是stopPropagation().对于下面的代码而言,大家可以尝试下,如果没有stopPropagation和有stopPropagation之间的差别。

代码如下:

$(function() { $("#mainp").click(function(event) { if($(this).children(ul).css("display") == "none")$(this).children(ul).css("display","block"); else$(this).children(ul).css(display,"none"); }); //阻止向上冒泡 $("#mainp > ul").click(function(event) { event.stopPropagation(); }); });测试如何屏蔽子元素的事件

first second third

更多相关教学请访问 JavaScript视频教学

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。