joshuaton 发表于 2013-2-7 19:15:26

ie7元素position设为absolute其子元素mouseover,mouseout等鼠标事件失效

在作鼠标经过时的一些特效(combox,suggest,menutffu)时,使用用mouseover,mouseout,mousermove事件时。如果某个html元素的position值为absolute时,ie7下,如果鼠标经过其子元素的空白处,上述事件将无效;如果经过文字时,事件触发正常。但ie6下都正常。
注:无论事件如何定义结果一样(html标签,dom的属性,attachEvent)
解决办法:
一:为该元素设置background属性,值不能为transparent。
二:设置该元素的子元素的background属性,值不能为transparent。
如: <style type="text/css">
   #main{
       background-color:white;/*这个很重要,没有这个定义,IE7下不正常*/
      position:absolute;
      width:200px;
   }
   #main .hover{
      background:blue;
      color:white;
      
   }
</style>
<div id="main">
   <div>sddffd</div>
   <div >sddffd</div>
   <div>sddffd</div>
   <div>sddffd</div>
   <div>sddffd</div>
   <div>sddffd</div>
</div>
<script type="text/javascript">
<!--
var t={}
   var m=document.getElementById("main");
   m.onmousemove=function () {
      o=event.srcElement;
      if(o!=this){
         t.className="";
         o.className="hover";
         t=o;
      }
   }
//-->
</script>
 
来源:http://hi.baidu.com/trarck/blog/item/0959da39711f6af43a87ced5.html
页: [1]
查看完整版本: ie7元素position设为absolute其子元素mouseover,mouseout等鼠标事件失效