javascript活动
在javascript倘若有知识的三个方面。事件的第一,流程,其次,事件处理,第三,事件对象。下面就我个人的理解,,分别讲述一下这三个方面的内容。
第一、事件流
事件流指的是事件依照一定的顺序触发。它有两个顺序,各自是自上而下和自下而上。
自上而下的叫做事件捕获。事件捕获指的是事件的处理将从DOM层次的根開始,而不是从触发事件的目标元素開始,事件被从目标元素的全部祖先元素依次往下传递。在这个过程中。事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,假设事件监听器在被注冊时设置了useCapture属性为true,那么它们能够被分派给这期间的不论什么元素以对事件做出处理。否则。事件会被接着传递给派生元素路径上的下一元素。直至目标元素。
事件到达目标元素后,它会接着通过DOM节点再进行冒泡。
自下而上的叫做事件冒泡。当事件在某一DOM元素被触发时,比如用户在客户名字节点上点击鼠标,事件将尾随着该节点继承自的各个父节点冒泡穿过整个的DOM节点层次,直到它遇到依附有该事件类型处理器的节点。此时,该事件是onclick事件。
在冒泡过程中的不论什么时候都能够终止事件的冒泡。在遵从W3C标准的浏览器里能够通过调用事件对象上的stopPropagation()方法,在Internet Explorer里能够通过设置事件对象的cancelBubble属性为true。
假设不停止事件的传播。事件将一直通过DOM冒泡直至到达文档根。
第二、事件处理程序
事件处理程序就是捕获到某个事件之后运行的程序。它有三种方式。
1、html级事件处理程序,即在html标签中直接增加事件处理程序。
例如以下所看到的:
<input type="button" value="button" onclick="alert('hello word!')" />
2、dom0级事件处理程序。即把一个函数赋值给一个事件的处理程序属性。
代码例如以下:
var element=document.getElementById('button');
element.onclick=function(){
alert('hello word!');
}
3、dom2级事件处理程序,即通过调用dom对象的addEventListener( )方法注冊事件处理程序。addEventListener()方法须要三个參数,各自是事件名、事件处理程序的函数和useCapture, 一个bool类型。当为false时为冒泡获取(由里向外),true为capture方式(由外向里)。使用addEventListener方法时须要注意事件名不要加前缀“on”,通过addEventListener方法加入的事件处理程序仅仅能通过removeEventListener才干删除。通过addEventListener能够为一个dom加入多个同样的事件处理程序并按顺序运行。代码例如以下:
var element=document.getElementById('button');
element.addEventListener('click',function(){alert('hello jim!')},false);
element.addEventListener('click',function(){alert('hello jack!')},false);
在不遵循w3c标注的浏览器上并不支持addEventListener方法。比如IE8及下面版本号的IE浏览器和Opera浏览器,它们在注冊事件处理程序的时候要用到的是attachEvent方法,删除事件使用detachEvent,它们分别接收两个參数,各自是事件名和事件处理的函数。
这里要注意了。使用这两个方法的时候,事件名必须是要加上前缀“on”的,否则无法识别。
第三、事件对象。在触发dom上的事件时都会产生一个事件对象:event。
它包括了事件的类型、鼠标的坐标等。
我们能够通过event对象target属性指的触发事件的dom对象。在IE8及下面浏览器中要获取这个对象要通过srcElement这个属性来获得。
event对象中的stopPropragation方法是阻止事件冒泡,preventDefault方法阻止默认行为,在IE8及下面浏览器中要设置event.cancelBubble=true阻止事件冒泡,设置event.returnValue=false阻止默认行为。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
javascript活动的更多相关文章
- javascript活动对象的理解——伪单例模式
在自己研究javascript各种设计模式的过程中,偶然写出的一段代码让自己理解的更深刻了,之所以称之为伪单例模式,是因为这段代码造成的结果很想单例模式,但是实际上是活动对象捣乱所造成的误会. 代码很 ...
- javascript - 活动倒计时(天、时、分、秒)
计数时: 结束时: 示例: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- javascript面向对象——tabs实例
面向过程—>面向对象 之前在未学习面向对象时,我们都是面向过程编程的.它的优点就是简单,明了,下面就来把面向过程的tabs切换改写成面向对象的方式. html: <div class=&q ...
- javascript立体学习指南
javascript立体学习指南第一章:首先了解javascript 首先,什么是javascript? JavaStrip出生于1995年,是一种文本脚本语言,成都装修公司是一种动态的.弱类型的.基 ...
- javascript中函数的执行环境、作用域链、变量对象与活动对象
javascript高级程序设计中:对执行环境.作用域链.变量对象.活动对象的解释: 1.执行环境: 执行环境:有时也叫环境:是JavaScript中最为重要的一个概念:执行环境定义了变量或函数有权访 ...
- JavaScript:理解执行环境、作用域链和活动对象
作用域的原理,对JS将如何解析标识符做出了解答.而作用域的形成与执行环境和活动对象紧密相关. 我们对于JS标识符解析的判断,存在一个常见误区 首先,看一个关于JS标识符解析的问题 ,源于风雪之隅提出的 ...
- 图解Javascript——变量对象和活动对象
span { line-height: 1.5 } 这是由一段代码引发的思考: var laterDeclaredVar = 'I am a global variable ...'; (functi ...
- 关于javascript中的变量对象和活动对象
https://segmentfault.com/a/1190000010339180 https://zhuanlan.zhihu.com/p/26011572 https://www.cnblog ...
- Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收
执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...
随机推荐
- (hdu step 7.1.2)You can Solve a Geometry Problem too(乞讨n条线段,相交两者之间的段数)
称号: You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/ ...
- Lua 服务器Socket通信实例(转)
local socket = require"socket" local host = "127.0.0.1"local port = "843&qu ...
- net搭建热插拔式web框架(沙箱的构建)
net搭建热插拔式web框架(沙箱的构建) 上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章 ...
- 非对称加密算法RSA使用注意事项
原文:非对称加密算法RSA使用注意事项 第一个问题,也是最重要的一个——RSA无法对超过117字节的数据进行加密!切记!其实也勿需要求对更大数据的加密,虽然网上已经有相关解决方案,比如BigInteg ...
- Bulk Insert具体订单
Bulk Insert具体订单 BULK INSERT与用户指定的格式的数据文件复制到数据库表或视图. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ] ...
- VS2010中配置C#Project不生成.vhost.exe和.pdb文件的方法
在VS2010中编译C#工程时,在C#的Project的属性界面的Build选项卡中当Configuration : Relese 时,依然会生成扩展名为.vhost.exe和.pdb文件. 其中.p ...
- jQuery Mobile发展新闻阅读器,适应iphone和android打电话
程序猿是很不赖,你知道. 我们经常新浪,腾讯.雅虎等各大网站看到上述新闻.他们还推出了自己的移动新闻阅读器.今天,我自己用的jQuery Mobile 为了实现这一功能,.图像大小上传限制的大小250 ...
- cocos2d-x lua 学习笔记(1) -- 环境结构
Cocos2d-x 3.0超过环境的版本号来建立和前Cocos2d-x 2.0 差异较大的版本,从同时Cocos2d-x 3.0项目打包成apkAndroid的应用程序文件,步骤,构建环境有些乏味安德 ...
- UWP开发的一些思考
UWP开发的一些思考 领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中 ...
- Spring aop 小例子demo
由于最近的服务项目提供接口有一个需求,所有操作都必须检查操作的服务可用,所以感觉Aop特别适合实施.完成学习的小例子. 关于spring-Aop原理:http://m.oschina.net/blog ...