2013-05-08 93 views
0

这里是我的代码 -的onmouseout效果....我不想这样做,

<li> 
<a id="LoginTxt2" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);" href="#"> 
<div style="background-color:#CCC;">OLD Text</div> 
</a> 
</li> 

JS--

MouseOver = function(obj){ 
    var id = obj.id; 
    document.getElementById(id).innerHTML='<div style="background-color:#DDD;">NEW Text</div>'; 

} 
MouseOut = function(obj){ 
    var id = obj.id; 
    document.getElementById(id).innerHTML="<div style="background-color:#CCC;">OLD Text</div>"; 

} 

当我的鼠标去到子div,MouseOut fierd我不想这么做... plz帮助

回答

0

这是事件的方式,并且没有办法避免调用MouseOut()函数。你可以做的是检查,MouseOut()功能里面,如果你现在徘徊的元素是外部元素的子元素:你需要的onmouseout声明更改为onmouseout="MouseOut(this,event);"

MouseOut = function(obj, event) { 
    // this is the original element the event handler was assigned to 
    var e = event.toElement || event.relatedTarget; 

    // check for all children levels (checking from bottom up) 
    while (e && e.parentNode && e.parentNode != window) { 
     if (e.parentNode == this|| e == this) { 
      if(e.preventDefault) { 
       e.preventDefault(); 
      } 
      return false; 
     } 
     e = e.parentNode; 
    } 
    var id = obj.id; 
    document.getElementById(id).innerHTML="<div style="background-color:#CCC;">OLD Text</div>"; 
} 

注意。

注:从https://stackoverflow.com/a/13141057/1417546得到的解

相关问题