在图书馆失去mouseOut事件我使用我当悬停在一个元素移动到DOM前面的任务。 (我把它做得更大,所以我需要看到它,然后在退出时将它缩小)。将活性元素在Internet Explorer
我使用的库具有其使用有源元件上appendChildren它,因此进一步移动到结束其父朝向DOM的端部,进而在上面纯溶液。
问题是,我相信,因为要移动的元素是你徘徊在mouseout事件的一个丢失。鼠标仍在节点上,但mouseout事件未被触发。
我已将功能剥离以确认问题。它在Firefox中工作正常,但在任何版本的IE中都不行。我在这里使用jquery来提高速度。解决方案可以在普通的旧javascript ...这将是一种偏好,因为它可能需要回流。
我不能在这里使用z-index作为元素是vml,库是Raphael,而且我正在使用toFront调用。通过UL /李样本显示问题一个简单的例子
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="js/jquery.min.js" type="text/javascript"></script>
<style>
li
{
border:1px solid black;
}
</style>
</head>
<body>
<ul><li>Test 1</li></ul>
<ul><li>Test 2</li></ul>
<ul><li>Test 3</li></ul>
<ul><li>Test 4</li></ul>
<script>
$(function(){
$("li").mouseover(function(){
$(this).css("border-color","red");
this.parentNode.appendChild(this);
});
$("li").mouseout(function(){
$(this).css("border-color","black");
});
});
</script>
</body>
</html>
编辑:这里是一个链接到一个js糊箱看到它在行动。 http://jsbin.com/obesa4
**编辑2:**查看所有答案全部评论张贴在该地段的详细信息之前。
我无法理解你的帖子。你想在鼠标悬停在元素上时触发'mouseout'事件?你真正的问题是什么? – lincolnk 2010-09-10 16:01:40
对于this.parentNode.appendChild(this);你试图重新添加现有的LI元素?为什么不只是添加一个CSS类而不是用新的CSS添加/删除相同的元素?或者,您的原始代码是否需要从UL中的其他位置添加一个全新的元素来模拟您在开始时提到的“扩展”尺寸效果? – Gary 2010-09-10 16:08:15
Linkol我试图让示例代码在ie中工作,就像它在Firefox中一样。 mouseout事件不会触发。我以li元素为例。正如我在文章中所说的,元素实际上是VML元素。因此,像z-index或增加类的东西将无法工作,除非人们可以证明不同。 – johnwards 2010-09-10 16:37:57