EventHTMLDOM允许JavaScript对HTML事件做出反应。JavaScript可以在事件发生时执行,例如当用户单击HTML元素时。(一)活动的组成a.事件源:事件被触发的对象b.事件类型C.事件处理程序:通过函数赋值。(2)执行事件的步骤a.获取事件源B.绑定事件C.以函数赋值的形式添加事件处理程序1.事件流程(1)事件流程描述了从页面接收事件的顺序。当一个事件发生时,它会按照特定的顺序在元素节点和根节点之间传播,路径经过的所有节点都会收到该事件。这个传播过程就是DOM事件流。1.1事件冒泡(IE事件流)(1)IE事件流之所以称为事件冒泡,这是因为事件被定义为从最具体的元素(文档树中最深的节点)触发,然后向上传播到没有然后是特定元素(文档)。(2)如上图所示,当div元素被点击时,即被点击的元素首先触发click事件。然后点击事件沿着DOM树一路向上,在它经过的每个节点上依次触发,直到它到达文档对象。1.2防止事件冒泡(1)event.stopPropagation()直接在对应的方法中使用event.stopPropagation()注意:点击方法时如果需要同时传递其他参数和事件,直接传onclick这个词即可='test(123,event)'1.3事件捕获(Netscape事件流)(1)事件捕获是指最不具体的节点最先收到事件,最具体的节点最后收到事件。事件捕获实际上是在事件到达最终目的地之前拦截事件。1.3DOM事件流DOM2Events规范规定事件流分为3个阶段:事件捕获、到达目标和事件目标。事件捕获先发生,可以提前拦截事件。然后,实际的目标元素接收事件。最后一个阶段是冒泡,最晚这个阶段应该对应事件。单击div元素会按所示顺序触发事件。在DOM事件流中,实际目标(div元素)在捕获阶段不会接收到事件。这是因为在capture阶段从document到html到body就结束了。下一阶段,即在div元素上触发事件的“目标已达到”阶段,在处理事件时通常被视为冒泡阶段的一部分。然后,冒泡阶段开始,事件传播回文档。注意:所有现代浏览器都支持DOM事件流,只有IE8及更早版本不支持。2.事件处理程序事件是指用户或浏览器执行的某种动作。例如,单机(click)、加载(load)、鼠标悬停(mouseover)。为响应事件而调用的函数称为事件处理程序(或事件侦听器)。2.1HTML事件处理程序特定元素支持的每个事件都可以使用事件处理程序的名称指定为HTML属性。此时属性的值必须能够执行JavaScript代码。例如,要在单击按钮时执行一些JavaScript代码,可以使用以下HTML属性:
