<!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></title>
<style>
body{ margin:0; padding:0; font-size:12px; background:#fff}
ul, li{ margin:0; padding:0; list-style-type:none}
.main{ width:300px; margin:auto}
.list{ width:300px; float:left}
.list li{ width:100px; height:100px; float:left; margin:20px; background-color:#06C}
.windows{ width:200px; height:200px; display:none; float:left; background-color:#F90; position:relative; left:40px; margin-top:-80px; z-index:9999}
</style>
</head>
<body><div class="main">
    
    <ul id="list" class="list">
     <li></li>
        <li></li>
    </ul>
    
    <div id="windows" class="windows"></div>
</div></body>
<script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#list li").each(function(i,n){
$(n).mouseover(function(){
$("#windows").fadeTo(100,1);
}).mouseout(function(){
$("#windows").fadeTo(100,0);
})
});
})
</script>
</html>复制代码就可以运行,现在的问题是当鼠标移入li(蓝色区域),windows(黄色区域)就显示,
当鼠标移开li(蓝色区域),windows(黄色区域)就隐藏, 这里是基本,下面才是问题当鼠标从li(蓝色区域)移到windows(黄色区域),要求windows(黄色区域)不要消失,谢谢各位啦

解决方案 »

  1.   

    <script type="text/javascript">
        $(function(){
    $("#list li").each( function() {
    $(this).mouseover( function() {
    $("#windows").fadeTo(100, 1);
    }).mouseout( function(event) {
    if (event.relatedTarget.id != 'windows') $("#windows").fadeOut(100, 0);
    });
    $("#windows").mouseout( function(event) {
    if (event.relatedTarget.nodeName != 'LI') $(this).fadeOut(100, 0);
    });
    });
        })
    </script>
      

  2.   

    这里event.relatedTarget.id 调试时会报错 
      

  3.   

    我猜楼主不但想移动到window上去让它不消失,也同时希望从window上移开之后它也消失,所以我帮楼主改动和加了一些代码    $(function() {
            $("#list li").each(function(i, n) {
                $(n).mouseover(function() {
                $("#windows").stop().fadeIn(100);//fadein 代替fadeto,效果一样,简单一些
                }).mouseout(function() {
                    $("#windows").stop().fadeOut(500); //fadeout 代替fadeto
                })
            });
            $("#windows").mouseover(function() {
                $(this).stop().fadeTo(0, 1);//立即显示
            }).mouseout(function() {
                $(this).fadeOut(500);//渐出
            })
        })
    另外, hover 可以同时写两个处理函数一个对应该mouseover,一个对应该mouseout,写法上更简洁一些
    如$("a").hover(functioni(){alert("over")},functioni(){alert("out")})
      

  4.   


    你用什么浏览器或软件调试的,报什么错误?Chrome、Safari、IE9(以及IE9下的IE8模式)、IE6(IETester模拟)下都没有问题啊。<!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></title>
    <style>
        body{ margin:0; padding:0; font-size:12px; background:#fff}
        ul, li{ margin:0; padding:0; list-style-type:none}
        .main{ width:300px; margin:auto}
        .list{ width:300px; float:left}
        .list li{ width:100px; height:100px; float:left; margin:20px; background-color:#06C}
        .windows{ width:200px; height:200px; display:none; float:left; background-color:#F90; position:relative; left:40px; margin-top:-80px; z-index:9999}
    </style>
    </head>
    <body><div class="main">
        
        <ul id="list" class="list">
            <li></li>
            <li></li>
        </ul>
        
        <div id="windows" class="windows"></div>
    </div></body>
    <script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function(){
    $("#list li").each( function() {
    $(this).mouseover( function() {
    $("#windows").fadeTo(100, 1);
    }).mouseout( function(event) {
    if (event.relatedTarget.id != 'windows') $("#windows").fadeOut(100, 0);
    });
    $("#windows").mouseout( function(event) {
    if (event.relatedTarget.parentNode.id != 'list') $(this).fadeOut(100, 0);
    });
    });
        })
    </script>
    </html>