前面已经了解,NN4 中事件流的流向与IE4 中正好相反,是从对象继承关系中较高层次的对象如window、document 到较低层次的对象如标记
、等。
同时较高层次上的事件处理器往往比较低层次上的处理器触发的机会更大。
如果在实际应用中,某事件不需要在顶级对象如 document 对象层次上调用事件处理器进行处理,而只需在
标记的层次进行处理,此时就需要将该事件往下传递。与IE4 中使用fireEvent()方法改向不同,NN4 中采用Event 对象的routeEvent()方法将事件往下传递。
该方法的语法如下:routeEvent(event);该方法接受一个参数event,表示当前发生事件。该方法提供了一种在对象关系树中控制事件流向的途径,同时新的事件处理器处理完该事件后,能将处理结果返回给原始对象,后者可根据该结果更改本层的事件处理器的行为。
将下列脚本加入文档的和
标记对之间:[code][/code]然后将事件捕获的代码加入文档的标记之前:[code][/code]该实例运行后,在窗口中双击,如果此时也按下了组合键Shift,则弹出警告框“鼠标单击且按住了Shift 键”,否则,事件转向window 对象所在层的下一层,即document 对象,并将该事件通过参数的形式传到document 对象的DbClick 事件处理器中进行处理。