js中preventDefault和stopPropagation.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
js中preventDefault和stopPropagation

首先讲解一下js中preventDefault和stopPropagation两个方法的区别: ???? preventDefault方法的起什么作用呢?我们知道比如a href= HYPERLINK / 百度/a,这是html中最基础的东西,起的作用就是点击百度链接到 HYPERLINK / ,这是属于a标签的默认行为,而preventDefault方法就是可以阻止它的默认行为的发生而发生其他的事情。看一段代码大家就明白了: ???? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN HYPERLINK /TR/xhtml1/DTD/xhtml1-transitional.dtd /TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns= HYPERLINK /1999/xhtml /1999/xhtml head meta http-equiv=Content-Type content=text/html; charset=utf-8 / titleJS阻止链接跳转/title script type=text/javascript function stopDefault( e ) { ???? if ( e e.preventDefault ) ??????? e.preventDefault(); ??? else ??????? window.event.returnValue = false; ??????? ??? return false; } /script /head body a href= HYPERLINK / id=testLink百度/a script type=text/javascript var test = document.getElementById(testLink); test.onclick = function(e) { ?? alert(我的链接地址是: + this.href + , 但是我不会跳转。); ?? stopDefault(e); } /script /body /html 此时点击百度链接,不会打开 HYPERLINK / ,而只是弹出一个alert对话框。 ???? preventDefault方法讲解到这里,stopPropagation方法呢?讲stopPropagation方法之前必需先给大家讲解一下js的事件代理。 ????? 事件代理用到了两个在JavaSciprt事件中常被忽略的特性:事件冒泡以及目标元素。当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。对任何一个事件来说,其目标元素都是原始元素,在我们的这个例子中也就是按钮。目标元素它在我们的事件对象中以属性的形式出现。使用事件代理的话我们可以把事件处理器添加到一个元素上,等待事件从它的子级元素里冒泡上来,并且可以很方便地判断出这个事件是从哪个元素开始的。 ???? stopPropagation方法就是起到阻止js事件冒泡的作用,看一段代码。 ???? !DOCTYPE HTML PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN HYPERLINK /TR/xHTML1/DTD/xHTML1-transitional.dtd /TR/xHTML1/DTD/xHTML1-transitional.dtd HTML XMLns= HYPERLINK /1999/xHTML /1999/xHTML lang=gb2312 head title 阻止JS事件冒泡传递(cancelBubble 、stopPropagation)/title meta name=keywords content=JS,事件冒泡,cancelBubble,stopPropagation / script function 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 /head body div id=parent1

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档