所有的功能都要进行检测浏览器的兼容和功能实现。
1 .js是基于事件的处理程序。
2 .事件流的含义:事件的响应式有序的,而不是无序触发的。
3 .在页面中,多个元素可以同时响应同一个事件。流意味着多个对象同时响应一个事件
4 .dom 0级事件,事件只是绑定在特定元素上。
5 .dom 2级事件,事件是流动的,可传播,而非静态的。事件流标准。捕获先进行响应,然后目标执行阶段,然后进行冒泡响应,事件从document开始,从dcument结束
三个阶段
1 .捕获阶段 事件沿着document对象开始向下传播,直到目标节点。如果父节点,注册了该事件,那么就有机会捕获,并调用事件处理函数。
2 .目标阶段 注册在目标节点上的响应事件处理函数被调用,执行
3 .冒泡阶段 事件从目标节点开始返回向上进行传播,如果父节点注册了响应事件处理函数,就会被调用,并不是所有的时间类型都有起泡阶段。
4 .html的默认动作,会在元素的三个是啊金之后进行执行,事件传播过程中任何的事件处理函数都可以调用event.preventDefault()来阻止事件的继续传播和发生。
事件处理的返回值
1 . 不返回值,触发默认行为
2 . false,阻止默认
3 .return 20 返回其他值,无效
事件处理函数的参数
1 .2.0必须有参数,event:事件消息以event对象形式在文档结构中进行传播。
2 .ie则是把事件对象存储在window对象的属性中,这样做不需要进行船只,而是直接从window中调用对象 e=e||window.event.
3 .target=e.target||e.srcElement
事件处理函数的this
1 .this=even.target 指向当前事件的目标元素。
2 .事件处理函数的作用域,js总是运行在词法作用域中,即函数在定义他们的作用域中运行,而不是在调用他们的作用域中运行。
3 .对于html元素的属性的事件处理函数来说,他的作用域链比较复杂,他的作用域的顶部是调用对象,事件发生的目标元素,传递给事件的处理函数的所有参数都定义在这里。这些被传递的参数和事件处理中申明的局部变量一样,都处于这个特殊的作用域之间,但是他们的上一级作用域是发生事件的目标对象,而不是全局对象。
dom2级事件模型的工作机制
1 .当事件发生时,2级dom api会自动生成一个事件对象,该对象存储了与该事件发生相关的信息,然后dom通过参数形式,把事件对象传递给事件处理函数。