Unusable links with onmouseover()得到了一个有趣的问题。经过一些记录实验后,我设置了http://jsfiddle.net/RnGxP/1/。最后两个示例按预期工作,单击“关闭”或离开“关闭”div时隐藏。
前两个示例在鼠标移动时将<{1}}设置为div (我自己从不这样做,但是......)。 因此,当将鼠标移动到其中一个时,它们会被扩展。并且在链接或“关闭”div上进一步移动鼠标,会触发更多移动事件。
但是,然后单击第二个示例中的关闭按钮 - 不移动鼠标 - 而不是单击事件,将触发两个mousemove事件! 这里究竟发生了什么?我可以理解点击事件在重置innerHTML
时会以某种方式丢失(失去其目标?),但为什么在移动之前触发了mousemove事件 < /强>
答案 0 :(得分:1)
您正在重写innerHTML
事件中div
元素的mouseover
。这意味着每次移动鼠标时,它实际上是在新节点上移动,这会在该节点上触发新的mouseover
事件,该事件会冒泡到div
元素,从而重写{{ 1}}等等。
因此,当innerHTML
事件触发内部mouseout
时,div
事件已经重写了外mouseover
上的innerHTML
,并且所以内部div
没有父...
您真正想要使用的是div
事件(可能是内部mouseenter
上的mouseleave
事件),它曾经是Internet Explorer的专有事件,但根据{{{ 3}} Firefox 10和Opera 11.10也支持它。