所谓的事件有两种:监听事件和浏览器对特殊标签元素的默认行为事件。
监听事件:在节点上被监听的事件操作,如 select节点的change事件,a节点的click事件。
浏览器的默认事件:特定页面元素上带的功能,如a标签的href跳转,表单的提交事件。
执行监听事件在先,浏览器默认事件在后,所以可以在监听事件函数中,阻止浏览器的默认行为。
区别:preventDefault() 阻止浏览器默认事件 stopPropagation() 阻止事件的冒泡 return false; 阻止后续的所有行为
 <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
//preventDefault,比如<a href='http://www.baidu.com'>百度</a>,preventDefault的作用就是阻止它的默认行为
function stoptDefault (e) {
if(e&&e.preventDefault){
e.preventDefault();
}
else{
window.event.returnValue=false;
}
return false;
}
window.onload=function(){
var test=document.getElementById("testLink");
test.onclick=function(e){
alert("我的连接地址是:"+this.href+',但是我不跳转');
stoptDefault(e);
}
}
//stopPropagation 阻止js事件冒泡 window.onload=function(){
var parent1=document.getElementById("parent1");
var childrent1=document.getElementById("childrent1");
parent1.onclick=function(){
alert(parent1.id)
};
childrent1.onclick=function(){
alert(childrent1.id)
};
}
function stopPro(obj,evt){
var e=(evt)?evt:window.event;
if(window.event){
e.cancelBubble=true;//ie下的阻止冒泡
}
else{
e.stopPropagation();//其他浏览器下的阻止冒泡
}
}
window.onload=function(){
var parent2=document.getElementById("parent2");
var childrent2=document.getElementById("childrent2");
parent2.onclick=function(){
alert(parent2.id)
};
childrent2.onclick=function(e){
stopPro(this,e);
alert(childrent2.id)
};
}
</script>
</head>
<body>
<a href="http://www.baidu.com" id="testLink">百度</a>
<br/>
<div id="parent1" style="width:250px;background-color:yellow">
<p>This is parent1 div.</p>
<div id="childrent1" style="width:200px;background-color:orange">
<p>This is Chilren1.</p>
</div>
</div>
<br/>
<div id="parent2" style="width:250px;background-color:cyan;">
<p>This is parent2 div.</p>
<div id="childrent2" style="width:200px;background-color:lightblue;">
<p>This is childrent2. Will bubble.</p>
</div>
</div>
</body>
</html>

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

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

    “return false”之所以被误用的如此厉害,是因为它看起来像是完成了我们交给它的工作,浏览器不会再将我们重定向到href中的链接,表单也不会被继续提交,但这么做到底有什么不对呢? 可能在你刚开 ...

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

    preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就 ...

  3. preventDefault()、stopPropagation()、return false 的区别

    preventDefault() e.preventDefault()阻止浏览器默认事件 stopPropagation() e.stopPropagation()阻止冒泡 return false ...

  4. e.preventDefault() e.stopPropagation()和return false的区别

    e.preventDefault(); //阻止事件的默认行为,比如a标签的转向,但不阻止事件的冒泡传播e.stopPropagation() //阻止事件的冒泡传播,但不阻止其默认行为returne ...

  5. 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 h ...

  6. e.preventDefault()和e.stopPropagation()以及return false的作用和区别

    前段时间开发中,遇到一个父元素和子元素都有事件时,发现会出现事件冒泡现象,虽然知道ev.stopPropagation()和ev.preventDefault()其中一个是阻止事件冒泡和阻止默认行为, ...

  7. 在jquery中each循环中,要用return false代替break,return true代替continue。

    在jquery中each循环中,要用return false代替break,return true代替continue. $.each(data, function (n, value) { if(v ...

  8. 阻止事件冒泡两种方式:event.stopPropagation();和return false;

    jQuery提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function (event) { ...

  9. preventDefault, stopPropagation, return false -JS事件处理中的坑

    我们以一个文件上传ui重设计为例子来探讨这几个函数的区别: 其中的html代码如下: <div class="file-upload"> <input type= ...

随机推荐

  1. 身份证验证JS代码

    身份证验证JS程序function checkidcardfun(code) { var city = {11: "北京", 12: "天津", 13: &qu ...

  2. Linux Shell 截取字符串

    Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...

  3. 通读SDWebImage①--总体梳理、下载和缓存

    本文目录 下载操作SDWebImageDownloaderOptions和下载过程实现 下载管理SDWebImageDownloader 缓存SDImageCache SDWebImageManage ...

  4. python反射问题

    python中的__import__是以字符串的形式反射导入模块并以字符串的形式执行函数

  5. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  6. 【转】Android Studio-1.2版本设置教程

    如果重新安装Android Studio的话要重新配置风格选项啥的,这篇是个很好的教程,原文链接:http://blog.csdn.net/skykingf/article/details/45485 ...

  7. 深入浅出 妙用Javascript中apply、call、bind

    apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...

  8. Des与3Des加密解密

    /// <summary> /// Des和3Des算法 /// </summary> public class Des { /// <summary> /// D ...

  9. Web 入门之 XML

      160916   1. 什么是XML?   XML 是 EXtensible Markup Language 的缩写,称为可扩展标记语言,所谓可扩展指用户可根据XML规则自定义标记.例子1-1 = ...

  10. MaxTemperature程序Mapper ClassNotFoundException

    错误: 执行hadoop权威指南上MaxTemperature程序出现Mapper类ClassNotFoundException异常: 解决: 将书上的 JobConf job = new JobCo ...