jq的事件冒泡
在页面上可以有多个事件,也可以多个元素响应同一件事,
事件冒泡引发的问题:
有些时候不想动用的事件,却因为事件冒泡而触发
解决问题:
1.事件对象
由于IE-DOM和标准的DOM实现事件对象的方法各不相同,导致在不同浏览器上获取事件对象变得比较困难,。针对这个问题,jq进行了必要的扩展和封装,从而使得在什么浏览器中都能够轻松地获取事件对象以及事件对象的一些属性。
在程序中,实现事件对象非常简单,只需要为函数添加一个参数,例:
$(element).bind('click',function(event){
//event:事件对象
})
当单击element时,事件对象就被创建了,这个事件对象只有事件处理函数才能访问,事件处理函数执行完毕,事件对象就会被销毁。
2停止事件冒泡
停止事件冒泡可以阻止事件中其他对象的事件处理函数被执行。在jq中提供了stopPropagation()方法来停止事件冒泡。
3.阻止默认行为
网页中的元素有自己的默认行为,例如 单击超链接后会跳转,点击“提交”按钮后表单会提交,有时需要阻止元素的默认行为。
在jq中,提供了preventDefault()方法来阻止元素的默认行为。
例,在项目中,经常需要验证表单,在单击“提交”按钮时,验证表单内容,
例如,某元素是否是必填字段,某元素长度是否够6位,当表单不符合提交条件时,要阻止表单的默认行为,(表单提交);
$(function(){
$(obj).bind("click",function(){
var username=$("#username").val();//获取元素的值
if(username=''){//判断值是否为空
$('#el').html('<p>文本框值不能为空</p>');//提示信息
event.preventDefault();//阻止默认行为(表单提交);
}
})
})
如果想同时对事件对象停止冒泡和默认行为,可以在事件处理函数中返回false,这是对在事件对象上同时调用stopPropagation()和preventDefalut();
在表单的例子中,可以把
event.preventDefalut()//阻止默认行为
改写成
return false;
也可以把事件冒泡例子中的
event.stopPropagation()//停止事件冒泡
改写成
return false;
4.事件捕获
事件捕获和事件冒泡是两个相反的过程,事件捕获是从最顶端往下开始触发。
事件捕获并不是所有的主流浏览器都支持,并且这个缺陷无法通过javascript来修复,jq不支持事件捕获,如果需要用到事件捕获,只能用原生js;
jq的事件冒泡的更多相关文章
- 事件冒泡的应用——jq on的实现
曾对jQuery中on的实现有所疑问,一直没有找到合适的实现方法,今日看<javascript高级程序设计>中的事件冒泡有了些思路. 针对于新增的DOM元素,JQ中若为其绑定事件就必须使用 ...
- jQuery---jQ动画(普通,滑动,淡入淡出,自定义动画,停止动画),jQuery的事件,jQ事件的绑定/解绑,一次性事件,事件委托,事件冒泡,文档加载
jQuery---jQ动画(普通,滑动,淡入淡出,自定义动画,停止动画),jQuery的事件,jQ事件的绑定/解绑,一次性事件,事件委托,事件冒泡,文档加载 一丶jQuery动画 show,hide, ...
- jq事件冒泡问题
在程序中使用事件对象非常简单,只需为函数添加一个参数,jquery代码如下: $("element").bind("click",function(event) ...
- jq 事件冒泡总结
什么是JS事件冒泡? 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个 ...
- js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )
在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”. 1..停止事件冒泡 JavaScript代码 //如果提供了事件对象,则这是一个非IE浏览器if ( ...
- 事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
一.事件冒泡定义 事件冒泡是指在一个对象触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那 ...
- jq常用事件(on,blur,focus,change),js/jq等待图片(页面)加载完毕事件,js读取文件
jq常用事件(on,blur,focus,change) // 方法一(推荐) $('.box').on( "click",function() {} ) $('.box').on ...
- JS中的事件冒泡——总结
一. 有话要说 事件冒泡这个话题已经被园子里的朋友说透了,已经没什么要讲的了,但是由于呢我这边有个小问题刚好跟这个事件冒泡有关,就突然性想写个总结:一方面是给自己增加印象,另一方面给园子的新手们,提供 ...
- JS中的事件、事件冒泡和事件捕获、事件委托
https://www.cnblogs.com/diver-blogs/p/5649270.html https://www.cnblogs.com/Chen-XiaoJun/p/6210987.ht ...
随机推荐
- sql语句的使用;
1.导出数据库的语句: mysqldump -u root -p shop > d:\shop.sql
- dist-upgrade
http://www.linuxserve.com/2015/06/how-to-enable-automatic-login-on-debian.html http://www.cyberciti. ...
- javaWeb知识的回顾
16年7月毕业,现在工作也有3个多月了.一直是在做一些增删改查,技术上没有太大的突破,自己总结下原因,还是原理理解的不够透彻,地基没打好就盖不成高楼. 在51cto上找到了佟刚老师的视频,快进游览一遍 ...
- APP测试中的头疼脑热:测试人员如何驱动开发做好自测
如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最 ...
- VC MFC工具栏(CToolBar)控件
一.工具栏 工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创 ...
- CDN技术详解及实现原理
CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...
- OpenCV 图片尺寸调整
http://blog.csdn.net/xiaoshengforever/article/details/12191303 2013-09-30 12:21 10842人阅读 评论(0) 收藏 举报 ...
- linux中的 tar命令的 -C 参数,以及其它一些参数(转)
linux中的 tar命令的 -C 参数,以及其它一些参数 复制源:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.htmltar命令 ...
- docker 基础命令二
开启/停止/重启 查看当前正在运行容器docker ps 查看包括已经停止的所有容器docker ps -a 显示最新启动的一个容器docker ps -l 新建一个容器运行docker run 启动 ...
- weblogic11g 配置数据源
配置连接数据源步骤详解: 服务器:Weblogic11g,使用JNDI配置 步骤一: 输入http://localhost:7001/console/,登录控制台: 步骤二:按下图要求配置后,进入“下 ...