IE模拟W3C事件模型的困难之处

原帖出自 http://www.iteye.com/topic/87329 的讨论。

legend 写道
我估计楼主是要在IE里模拟 capture,以楼主的 js 功力,模拟 capture 是轻而易举的!


模拟capture并非不可能,但是非常的麻烦。不是有js功力就一定可以搞定的。

比如,capture必须保持与bubble一个合理的触发顺序,你必须保证一个事件在dom树上完成所有注册的capture事件,然后再bubble。这点就非常头大了。例如我在div上capture一个click事件,我可以实际上先attach一个,但是我要保证在这个div上bubble的事件函数必须在capture的事件函数完成后再执行,这意味着普通的bubble事件函数也不能直接attach进去(否则无法保证执行顺序)。

进一步,如果我又在div的一个子元素span上capture一个click事件,那么同样的处理,但是我要保证先去触发外层div上的capture事件函数,然后是span上的capture事件函数,然后再是span上的bubble事件函数。问题是你还必须处理当click事件被bubble到div上后,不能把已经执行过的div上的capture事件再执行一遍!

好了,这只是基本的,再考虑一下cancel bubble,考虑一下stop propagation,考虑一下mousedown,click,mouseup,dblclick的事件顺序……

你可能感兴趣的:(IE)