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)及垃圾回收
执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...
随机推荐
- 【原创】leetCodeOj ---Construct Binary Tree from Preorder and Inorder Traversal 解题报告
原题地址: https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题目 ...
- ios pop 折叠动画
今天写了一个很有趣的电影太,我们可以去githoub下载. 这部动画是高级写作,我参考了它.而凝视,我希望你能看的懂. 各种动画.事实上,一些不起眼的开始.我也只是摸索. 我希望有更多的交流.[ ...
- 使用 Cordova+Visual Studio 创建跨平台移动应用(2)
目前开发移动应用有三种模式:Native.Hybird.Web,若要开发跨平台的移动应用,又希望与本地API交互,那么Hybird是一个非常好的选择. 作为一个.Net程序员,可以使用熟悉 ...
- Java 大数类
划分结果存在数组.供应商下标0 在剩下的标记1 import java.math.BigInteger; import java.util.Scanner; public class Main { p ...
- [LeetCode202]Happy Number判断一个数是不是happy number
题目: Write an algorithm to determine if a number is "happy". A happy number is a number def ...
- C日常语言实践中小(四)——勇者斗恶龙
勇者斗恶龙 愿你的国有n龙的头,你想聘请骑士杀死它(全部的头). 村里有m个骑士能够雇佣,一个能力值为x的骑士能够砍掉恶龙一个致敬不超过x的头,且须要支付x个金币. 怎样雇佣骑士才干砍掉恶龙的全部头, ...
- Android-管理Activity生命周期 -重新创建Activity
按照正常的app行为,很少情况下activity会销毁,只有当用户点击了返回按钮或者activity通过调用finish()发出销毁信号.系统也有可能销毁activity如果它是停止状态并且很久没有使 ...
- ICT工作的思考<两>
2周奋战.我负责的LB昨天完成了最后一个模块.最后20日. 一周早于预期,经理说,出乎他的意料.So 奖励表,昨日,管理人员与我们合作,吃烧烤补补身子.我只想说,最后一个喘息. 这两周的生活确挺忙碌的 ...
- Binary System
Description Usually we use number in the decimal system, for it is so convenient for us to remember ...
- NuttX 介绍
(嵌入式 实时操作系统 rtos nuttx 7.1) NuttX 介绍 转载请注明出处:http://blog.csdn.net/zhumaill/article/details/24197637 ...