JavaScript的BOM关于event

event

event实际上就是一个事件,是浏览器自动触发或者用户手动触发的页面状态的改变。事件处理函数就是当事件发生时自动调用的函数。在事件发生之前绑定到时间属性上。关于创建事件函数的话有三种方法。第一个是在HTML中绑定 <ANY οnclick=“alert(‘hello world’);”。第二个的话是为事件属性赋值一个函数:document.getElementsByTagName(“div”)[0].onclick = function () {};而第三种方法就是今天我们着重要讲的addEventListener。ex:ANY.addEventListener(“事件名”,fun , capture)。capture:是否在捕获阶段提前触发,默认是false 控制事件触发的顺序。

事件模型

在DOM中一个事件的发生有三个阶段,第一个阶段是捕获,它是由外到内,记录各级父元素上绑定的相同的事件。第二个阶段是目标触发,这个目的就是触发目标元素上的事件处理函数。最后一个阶段就是冒泡,意思按照捕获顺序,反向执行,由内到外,一次触发各级父元素绑定的事件。

事件对象

事件对象就是当事件发生时自动创建的封装所有事件信息的一个对象,那么他是怎么获取的呢?在我们的DOM标准里面事件对象默认作为事件处理函数的第一个参数传入。ex:function 处理函数(e/event){…e//在事件发生时,自动获得事件对象};在IE8里面的话,在全局window,定义了一个event,ex:function 处理函数(){window.event} 那我们的兼容写法的话就是function 处理函数(e){e = e || window.event;}。并且我们取消冒泡的话也是两个标准,在DOM里面是e.stopPropagation();但是在IE8里面的话就是e.cancelBubble = true。这两个也是有兼容写法的ex:if(e.stopPropagation()){e.stopPropagation()} else{e.cancelBubble = true;}。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章