2012-08-11 88 views
2

以下代码允许用户在链接上滚动时显示div。问题是,当用户滚动链接时div不会消失。无论如何,我们可以做到这一点,当用户滚动链接的div消失,但用户仍然能够把他们的光标下来,并与在div中的项目进行交互.....任何帮助将不胜感激。问题与DIV显示/隐藏代码?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 
<script type='text/javascript'> 
/* <![CDATA[ */ 
document.getElementsByClassName = function(){ 
    if(arguments.length == 1) 
    arguments[1]='*'; 
    var retnode = []; 
    var myclass = new RegExp('\\b'+arguments[0]+'\\b'); 
    var elem = this.getElementsByTagName(arguments[1]); 
    for(var i = 0; i < elem.length; i++){ 
    var classes = elem[i].className; 
    if(myclass.test(classes)) 
     retnode.push(elem[i]); 
    }; 
    return retnode; 
}; 
window.onload=function(){ 
    var x = document.getElementsByClassName('HoverMe', 'a'); 
    for(var i = 0; i < x.length; i++){ 
    x[i].onmouseover=function(){ 
     var m = document.getElementsByClassName('HoverMe', 'a'); 
     var n = document.getElementsByClassName('showMe', 'div'); 
     for(var i = 0; i<m.length; i++){ 
     n[i].style.display = (m[i]==this)?'block':'none'; 
     }; 
    }; 
    }; 
    x = document.getElementsByClassName('showMe','div'); 
    for(var i = 0; i < x.length; i++){ 
    x[i].style.display = 'none'; 
    }; 
}; 
/* ]]> */ 
</script> 

</head> 

<body> 
<a class='HoverMe'>link 1</a><a class='HoverMe'>link 2</a> 
<div class='showMe'>stuff 1</div><div class='showMe'>stuff 2</div> 
</body> 
</html> 

回答

2

添加mouseout函数。这里

x[i].onmouseout=function(){ 
    var m = document.getElementsByClassName('HoverMe', 'a'); 
    var n = document.getElementsByClassName('showMe', 'div'); 
    for(var i = 0; i<m.length; i++){ 
    n[i].style.display = 'none'; 
    }; 
}; 

退房小提琴:添加以下代码你x[i].mouseover函数调用下http://jsfiddle.net/babcN/

+0

这是真棒!但无论如何,我们可以这样做,以便当用户将鼠标移到出现的div上时,它们可以与该div上的内容进行交互,而不会消失? – 2012-08-11 18:52:19