当前位置: 首页 > article >正文

Javascript如何阻止事件的默认行为?

阻止浏览器默认行为防止事件传播主要通过先下面两个方法实现

event.preventDefault(): 取消浏览器对当前事件的默认行为,比如点击链接后,浏览器跳转到指定页面,或者按一下空格键,页面向下滚动一段距离。

event.stopPropagation(): 阻止事件在DOM中继续传播,防止再触发定义在别的节点上的监听函数。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>阻止浏览器默认行为-黑马程序员web前端培训高手班http://web.itheima.com</title>
</head>
<body><div id="div2">2<div id="div1">1<a id="a" href="http://www.itheima.com" target="_blank">黑马程序员</a></div></div>
</body>
<script>var d2 = document.getElementById('div2');var d1 = document.getElementById('div1');var a = document.getElementById('a');d2.onclick = function(e){alert('d2');}d1.onclick = function(e){alert('d1');}a.onclick = function(e){alert('a');}
</script>
</html>

未阻止浏览器默认行为和阻止事件传播之前

未阻止之前效果

阻止浏览器默认行为

<script>var d2 = document.getElementById('div2');var d1 = document.getElementById('div1');var a = document.getElementById('a');d2.onclick = function(e){alert('d2');}d1.onclick = function(e){alert('d1');}a.onclick = function(e){alert('a');// 阻止浏览器默认行为e.preventDefault();}
</script>
</html>

由于e.preventDefault()阻止了浏览器默认行为,所以点击“黑马程序员”,不会跳转黑马程序员官网。

阻止浏览器行为之后效果

阻止事件传播

<script>var d2 = document.getElementById('div2');var d1 = document.getElementById('div1');var a = document.getElementById('a');d2.onclick = function(e){alert('d2');}d1.onclick = function(e){alert('d1');}a.onclick = function(e){//阻止事件传播e.stopPropagation();alert('a');}
</script>

由于e.stopProgation()阻止了事件传播,d1和d2对象绑定的事件不会再触发,直接跳转都了http://www.itheima.com。

阻止事件传播效果

文章转自:黑马程序员web前端课程 http://web.itheima.com

http://www.lryc.cn/news/2415310.html

相关文章:

  • C++模仿超炫Vista风格QQ界面,这个QQ界面真的是满满的回忆啊!
  • [原创]走上IT之路的坎坷经历
  • MyEclipse6.5 汉化方法(未测试)
  • SQL数据库增删改查
  • Struts 2 下载文件(12)
  • 移动硬盘接口坏了怎么办解决教程
  • Linux下Nodejs安装(完整详细)
  • 电脑缺失d3dx9_42.dll文件怎么解决,教你5种有效的解决方法
  • DIV滚动条属性及样式设置方式
  • tomcat 服务器使用 url rewrite (地址转向)
  • 《暮光之城》——如果那真的是你,就请你再勇敢一点、再直接一点,因为我早已经不可救药的爱上你了。你是吸血鬼也罢,你是致命危险也罢,你是什么,我都无所谓。
  • 家庭必备,轻、快、好用的WIN10自带虚拟机
  • 基于mybatis-jsp-bootstrap-servlet-mysql-maven的Javaweb课程设计--刷题后台管理系统(考试题目管理系统)
  • dedeCMS采集规则各大CMS采集规则通用
  • 滚动公告栏代码
  • 团队博客介绍
  • java面试题之OAuth 2.0是什么,四种支持的方法
  • windows xp 安装图解
  • Windows配置DHCP与IP管理
  • 【科研之路】室内定位入门之基于定位原理的分类概述
  • 详细74系列IC功能说明
  • 消息队列常见问题总结
  • Window OS-拾贝
  • 【剑侠情缘服务端】武侠题材角色扮演类手游源码+手工外网端+安卓APP+视频教程
  • 资深开发者J2ME平台开发漫谈
  • 宏基4750网卡驱动linux,宏基4750g驱动下载-宏基4750g网卡驱动程序官方版 - 极光下载站...
  • 两种高性能I/O设计模式(Reactor/Proactor)的比较
  • gridview数据绑定
  • 【Java基础】抽象类概述、特点、接口概述、特点及抽象类和接口的区别
  • Hibernate 学习教程