JS preventDefault ,stopPropagation ,return false

所谓的事件有两种:监听事件和浏览器对特殊标签元素的默认行为事件。监听事件:在节点上被监听的事件操作,如 select节点的change事件,a节点的click事件。浏览器的默认事件:特定页面元素上带的功能,如a标签的href跳转,表单的提交事件。执行监听事件在先,浏览器默认事件在后,所以可以在监听事件函数中,阻止浏览器的默认行为。区别:preventDefault() 阻止浏览器默认事件  stopPropagation() 阻止事件的冒泡  return false; 阻止后续的所有行为
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title></title>
 6     <script type="text/javascript">
 7     //preventDefault,比如<a href=‘http://www.baidu.com‘>百度</a>,preventDefault的作用就是阻止它的默认行为
 8     function stoptDefault (e) {
 9         if(e&&e.preventDefault){
10             e.preventDefault();
11         }
12         else{
13             window.event.returnValue=false;
14         }
15         return false;
16     }
17     window.onload=function(){
18         var test=document.getElementById("testLink");
19         test.onclick=function(e){
20         alert("我的连接地址是:"+this.href+‘,但是我不跳转‘);
21         stoptDefault(e);
22         }
23     }
24     //stopPropagation 阻止js事件冒泡
25
26     window.onload=function(){
27         var parent1=document.getElementById("parent1");
28         var childrent1=document.getElementById("childrent1");
29         parent1.onclick=function(){
30             alert(parent1.id)
31         };
32         childrent1.onclick=function(){
33             alert(childrent1.id)
34         };
35     }
36     function stopPro(obj,evt){
37         var e=(evt)?evt:window.event;
38         if(window.event){
39             e.cancelBubble=true;//ie下的阻止冒泡
40         }
41         else{
42             e.stopPropagation();//其他浏览器下的阻止冒泡
43         }
44     }
45     window.onload=function(){
46         var parent2=document.getElementById("parent2");
47         var childrent2=document.getElementById("childrent2");
48         parent2.onclick=function(){
49             alert(parent2.id)
50         };
51         childrent2.onclick=function(e){
52             stopPro(this,e);
53             alert(childrent2.id)
54         };
55     }
56     </script>
57 </head>
58 <body>
59 <a href="http://www.baidu.com" id="testLink">百度</a>
60 <br/>
61 <div id="parent1" style="width:250px;background-color:yellow">
62      <p>This is parent1 div.</p>
63      <div id="childrent1" style="width:200px;background-color:orange">
64          <p>This is Chilren1.</p>
65      </div>
66 </div>
67 <br/>
68 <div id="parent2" style="width:250px;background-color:cyan;">
69      <p>This is parent2 div.</p>
70      <div id="childrent2" style="width:200px;background-color:lightblue;">
71           <p>This is childrent2. Will bubble.</p>
72      </div>
73 </div>
74 </body>
75 </html>
时间: 2024-10-28 14:32:54

JS preventDefault ,stopPropagation ,return false的相关文章

preventDefault()、stopPropagation()、return false 之间的区别

"return false"之所以被误用的如此厉害,是因为它看起来像是完成了我们交给它的工作,浏览器不会再将我们重定向到href中的链接,表单也不会被继续提交,但这么做到底有什么不对呢? 可能在你刚开始学习关于jQuery事件处理时,看到的第一个例子就是关于如何阻止浏览器执行默认行为,比如下面这段演示click事件的代码 $("a.toggle").click(function () { $("#mydiv").toggle(); return

js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false

preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了.什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等.当Event对象的cancelable为false时,表示没有默认行为,这时即使有默认行为,调用 preventDefault也是不会起作用的. 我们都知道,链接&

jQuery中preventDefault()、stopPropagation()、return false 之间的区别

一.preventDefault()方法,阻止浏览器默认行为 浏览器有很多默认行为,比如form表单的submit按钮一点击,默认行为就要开始提交表单. 再比如 <a href="http://www.klmai.cn">内部优惠券</a> a链接一点击默认触发的行为就是浏览器地址栏变化后跳转到指定的网站.要阻止这种默认行为我们可以用preventDefault()方法.实例如下: <div class="div1"> 阻止浏览器

How to correctly use preventDefault(), stopPropagation(), or return false; on events

How to correctly use preventDefault(), stopPropagation(), or return false; on events I’m sure this has been written about many times before and probably has hundreds of answers on StackOverflow. Despite this we still find ourselves going through code

原生js中stopPropagation,preventDefault,return false的区别

1.stopPropagation:阻止事件的冒泡,但不阻止事件的默认行为. 最好莫过于用例子说明: <div id='div'  onclick='alert("div");'>    <ul  onclick='alert("ul");'>        <li id='ul-a' onclick='alert("li");'><a href="http://www.baidu.com&qu

js阻止事件冒泡 return false / e.stopPropagation() /e.preventDefault()

由于每个元素在文档里面触发时都会冒泡 如果每个层上都有alert事件,那么触发里层div时,alert 里层,外层,最外层. 为了防止事件之间干扰,需要阻止事件冒泡. 一般使用e.stopPropagation(); ie8及其以下不支持,需要使用e.cancelBubble=false: 另外e是用来获得window的全局对象.e可以使用任意其他字母或者单词代替,比如a,b,c,d....,event,obj等等. 每当触发一个事件,系统都会给这个事件传一个对象,从而获得全局对象. 比如通过e

js中return;、return true、return false;区别

一.返回控制与函数结果, 语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果  二.返回控制, 无函数结果,语法为:return;  在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页.    Return False 就相当于终止符,Return True 就相当于执行符.    在js中return false的作用一般是用来取消默认动作的.比如你单击一

js中return、return true、return false的区别

js中return.return true.return false;区别 一.返回控制与函数结果, 语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果  二.返回控制, 无函数结果,语法为:return;  在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页.    Return False 就相当于终止符,Return True 就相当于执行符.    

js中return;、return true、return false;区别

一.返回控制与函数结果 语法为:return 表达式 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制 无函数结果,语法为:return; 在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页面. return false; 就相当于终止符, return true;  就想当于执行符. 在js中,return false的作用一般是用来取消默认动作的.比如你单击一个链接除了