- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
js中的preventDefault和stopPropagation
首先讲解一下js中preventDefault和stopPropagation两个方法的区别:
???? preventDefault方法的起什么作用呢?我们知道比如a href=百度/a,这是html中最基础的东西,起的作用就是点击百度链接到,这是属于a标签的默认行为,而preventDefault方法就是可以阻止它的默认行为的发生而发生其他的事情。看一段代码大家就明白了:
???? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN /TR/xhtml1/DTD/xhtml1-transitional.dtdhtml xmlns=/1999/xhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8 /titleJS阻止链接跳转/titlescript type=text/javascript function stopDefault( e ) { ???? if ( e e.preventDefault ) ??????? e.preventDefault(); ??? else ??????? window.event.returnValue = false; ??????? ??? return false; } /script /headbodya href= id=testLink百度/a script type=text/javascript var test = document.getElementById(testLink); test.onclick = function(e) { ?? alert(我的链接地址是: + this.href + , 但是我不会跳转。); ?? stopDefault(e); } /script/body/html
此时点击百度链接,不会打开,而只是弹出一个alert对话框。
???? preventDefault方法讲解到这里,stopPropagation方法呢?讲stopPropagation方法之前必需先给大家讲解一下js的事件代理。
????? 事件代理用到了两个在JavaSciprt事件中常被忽略的特性:事件冒泡以及目标元素。当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。对任何一个事件来说,其目标元素都是原始元素,在我们的这个例子中也就是按钮。目标元素它在我们的事件对象中以属性的形式出现。使用事件代理的话我们可以把事件处理器添加到一个元素上,等待事件从它的子级元素里冒泡上来,并且可以很方便地判断出这个事件是从哪个元素开始的。
???? stopPropagation方法就是起到阻止js事件冒泡的作用,看一段代码。
???? !DOCTYPE HTML PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN /TR/xHTML1/DTD/xHTML1-transitional.dtdHTML XMLns=/1999/xHTML lang=gb2312headtitle 阻止JS事件冒泡传递(cancelBubble 、stopPropagation)/titlemeta name=keywords content=JS,事件冒泡,cancelBubble,stopPropagation /scriptfunction doSomething (obj,evt) {alert(obj.id);var e=(evt)?evt:window.event;if (window.event) {?? e.cancelBubble=true;???? // ie下阻止冒泡} else {?? //e.preventDefault();?? e.stopPropagation();???? // 其它浏览器下阻止冒泡}}/script/headbodydiv id=parent1 onclick=alert(this.id) style=width:250px;background-color:yellowpThis is parent1 div./pdiv id=child1 onclick=alert(this.id) style=width:200px;background-color:orange?? pThis is child1./p/divpThi
您可能关注的文档
- FRESH START第一段PPT.pptx
- 如何用RMAN恢复一个DROP TRUNCATE DML误操作的表.doc
- 读写译Fresh start - 刘倩 王畇.ppt
- 2008年中考英语分册总复习(八).doc
- 初三英语期终复习检测试题(2008`12).doc
- 2013八上Unit5基础试题及答案.doc
- 2014年春福师大学英语2一答案.docx
- 2013中译提高练习.docx
- 4-Star精密台式钠度计 钠离子浓度计.doc
- 59store客户满意度调查.doc
- 大学生职业规划大赛《新闻学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《应用统计学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《中医学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《信息管理与信息系统专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《汽车服务工程专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《水产养殖学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《市场营销专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐表演专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
文档评论(0)