有没有办法强制浏览器的Window对象重新评估鼠标的位置?

时间:2012-07-11 09:13:30

标签: javascript iframe mouse

我有一个内容管理工具,它使用iframe来堆叠页面上的内容块。系统会将每个块的内容加载到iframe中,同时还有一个封面和一些用于编辑功能的按钮(编辑,删除,复制和移动)。封面仅出现在鼠标悬停时(使用CSS:hover伪类),因此页面内容看起来与它的实际内容完全相同,除非用户将鼠标悬停在要编辑的块上。一切正常。

问题在于移动块。我开发了一种用于移动块的拖放系统。用户将鼠标按下移动图标,然后将块拖动到他们需要的位置。在mousedown上,块本身(整个iframe)被隐藏(显示:无),并被替换为相同形状的阴影div,然后被拖动。如果用户选择将块放在一个新的位置,一切正常,但如果它们在其他地方丢弃,则操作被取消。阴影被破坏,并重新显示原始iframe。

现在的问题是:当重新显示原始iframe时,它仍然认为鼠标悬停在它上面,并且只显示在:hover伪类下的所有图层都显示(在FireFox和IE中 - 不是在Chrome中)。将鼠标移到块然后再次移出会重置iframe状态,但我正在寻找一种方法来强制iframe重新评估鼠标位置,而无需用户做任何事情。

一种解决方案是用鼠标事件和指定的类替换伪类的使用,但我想知道是否还有其他解决方案。

1 个答案:

答案 0 :(得分:0)

除非你只针对最新的浏览器(在较旧的IE中没有本地:除了锚之外的其他任何东西的悬停事件),你应该跳过:悬停方法并继续你正确的假设是一个解决方案 - 意味着使用css类和js事件来确定块的状态。