IE8:使用Javascript重新排列节点似乎正在丢弃事件处理程序

时间:2012-11-18 15:36:53

标签: javascript html dom internet-explorer-8

我有一个桌子,侧面有一个小按钮,可自动移动到用户鼠标所在的任何行。当鼠标移动时,使用insertBefore()函数移动包含span的按钮(以及其中的所有元素)。但是,该按钮具有已注册的onclick事件处理程序(使用attachEvent()),一旦移动该按钮,onclick事件将不再触发。

这是一个已知问题吗?

1 个答案:

答案 0 :(得分:1)

使用insertBeforeappendChild和其他DOM操作方法可以在所有浏览器中保留事件处理程序,因此这不是您的问题。

我试图重现所描述的问题,我在IE8中看到了点击的错误。按钮只是处于按下状态,点击处理程序不会触发。以前从未见过这样的错误。

要解决此问题,您可以使用mouseenter事件代替mouseover。 (此事件内置于IE中,但并非在所有现代浏览器中。要制作此crossbrowser,您可以使用jQuery mouseenter)。

JSFiddle链接(在IE8中查看):with bugfixed version