JavaScript Event学习第八章:事件的顺序
在第一章中我提到一个首次看起来也许不是那么好领略的是一个题目:“假如一个元素和他的父元素对付同样的变乱都有变乱处理赏罚措施,那么哪个会起首执行呢?”毫无疑问,看是什么赏识器。
根基题目很简朴。假设你的一个元素包括在其它一个元素中。 -----------------------------------<BR>| element1 |<BR>| ------------------------- |<BR>| |element2 | |<BR>| ------------------------- |<BR>| |<BR>-----------------------------------<BR> 这两个元素都有onclick变乱处理赏罚措施。假如用户在element2上面单击那么在元素2和元素1上都触发了单击变乱。可是哪个变乱先产生呢?哪个变乱处理赏罚措施会先执行呢?换句话说,变乱次序(event order)是什么呢? 两种模式 变乱捕捉 | |<BR>---------------| |-----------------<BR>| element1 | | |<BR>| --------- --| |----------- |<BR>| |element2 / | |<BR>| ------------------------- |<BR>| Event CAPTURING |<BR>-----------------------------------<BR> element1的变乱处理赏罚措施会先执行,element2后执行。 变乱冒泡 / <BR>---------------| |-----------------<BR>| element1 | | |<BR>| ---------- -| |----------- |<BR>| |element2 | | | |<BR>| ------------------------- |<BR>| Event BUBBLING |<BR>-----------------------------------<BR> element2的变乱处理赏罚措施会先执行,element1的变乱处理赏罚措施后执行。 W3C模式 | | / <BR>-----------------| |--| |-----------------<BR>| element1 | | | | |<BR>| ----------- --| |--| |----------- |<BR>| |element2 / | | | |<BR>| -------------------------------- |<BR>| W3C event model |<BR>------------------------------------------<BR> 作为计划师的你,可以随意选择把变乱处理赏罚措施注册在捕捉照旧冒泡阶段。通过之前高级模式内里先容的addEventListener()要领就可以完成。假如最后一个参数是true那么就配置成为变乱捕捉,假如是false就配置为变乱冒泡。 假设你这样写 element1.addEventListener('click',doSomething2,true)<BR>element2.addEventListener('click',doSomething,false)<BR> 假如用户在element2上单击就会产生下面的工作: 反过来: element1.addEventListener('click',doSomething2,false)<BR>element2.addEventListener('click',doSomething,false)<BR> 此刻假如用户在element2上面点击就会产生: (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |