我问一个问题:
<ul><li></Li></ul>
<div></div>
当点击li时 div 就显示,而且div的坐标是在li元素的中间位置。
鼠标移动出li时div就不显示。
鼠标在div上时div 也显示。
当鼠标从div移出的时候就隐藏div。
但是我如果鼠标从div移动到li元素的话就让他继续显示。
然后鼠标移动出li时div就不显示。

解决方案 »

  1.   

    现在回答楼主的问题:编写一个函数显示DIV,再编写一个函数隐藏DIV
    设置一下鼠标事件的事件句柄为上面的两个函数即可
      

  2.   

    那是 onmouseover 事件。。
    其实我想要的效果 像
    http://www.51job.com
    然后点击 地点 之后就弹出 一个浮动 的 div
    那里是点击 一个省就出现 一个 市 的 div之后就出现我说的那个问题啦
      

  3.   

    设置一下鼠标事件的事件句柄为上面的两个函数即可
    这个是什么意思?
    我设置了div.onmouseout =function(){this.style.display="none";}
    但是当我移动到 li 的时候他已经消失啦
      

  4.   


    <li><div></div></li>
    主要是 要设置好 position; 具体忘了。
      

  5.   

    回sky:thanks your answer。<ul> <li> </Li> </ul> 
    <div> </div> 
    简单的说吧:
    div.onmouseout =function(){this.style.display="none";} 
    但是我想当鼠标从div移动到li的时候
    div 不隐藏
      

  6.   

    恩。
    我就不懂在 event 对象 的源 转换 的时候应该怎样做出判断
      

  7.   

    <div>
        <ul> 
             <li> 1</Li>
             <li> 2</Li> 
        </ul> 
    </div> div.onmouseout=function(){alert("1");}
    这个很奇怪啊,当我移动到 li 元素的时候
    照样执行alert("1").请问 我可以不让他触发吗?
      

  8.   

    我想到一个办法
    就是用  function hiddencityArea(obj) {
                if (obj) {
                    obj.style.backgroundColor = "#FFF"
                }
                timer = setTimeout('cityArea.style.display = "none" ', 100);
            }用一个延迟执行
      

  9.   

    设置两个布尔值A和B,
    进入li时A为true,移出li时为false,
    进入DIV时B为true,移出DIV时B为false,
    当A和B都为false时,div消失
      

  10.   

    11楼的问题请去看下JS事件冒泡的文章,我把HTML理解为一颗树,当为主干注册一个鼠标移动事件处理函数时,无论你是移动到主干还是枝干时,事件都会触发。当然解决方法很简单,在事件处理函数中判断当前对象是否是事件除法原始对象if(event.srcElement == this)//ie
    if(event.eventTarget == this)//W3C
      

  11.   

    设置两个布尔值A和B, 
    进入li时A为true,移出li时为false, 
    进入DIV时B为true,移出DIV时B为false, 
    当A和B都为false时,div消失这样不行。因为我的确移出了div了。
      

  12.   

    I promise这个写完后去洗衣服
      

  13.   

    我一般用setTimeout因为用toElement和fromElement,relatedTarget等实现时,在ie下有时会遇到HTML元素,很郁闷,
    看看
    http://dl.dropbox.com/u/2555620/jquery/hovertest.html
      

  14.   

    那个网站我就不看了~听意思是这么回事,你就是想加个地图上的提示是吧,这么着你看行不行,你在li上写mousemove=function(){div显示}再写个mouseout=function(){div隐藏}div上写mousemove=function(){隐藏自己}有问题么?哦,你还想点击li,在写个onclick=div显示呗;你想在只移动上无不点的话不显示div的话,这个,你就先不给li加mousemove动作,onclick=function(){
    显示div;
    this点mousemove=显示div,//在mouseout里面把这个清空;等下次点击活,
    }没问题吧?就是不知道mouseout灵敏不灵敏,你要是不放心,设置一个定时函数跟在“显示div”语句的后面,5秒后隐藏div的显示,这没什么难的啊,div定位不难,取li坐标做参考,html不是有一个标签叫title还是什么来着,就是提示用的么,用那个不行么,css可以搞定的吧!
    非要用js搞!
      

  15.   

    div上写mousemove=function(){隐藏自己} //这笔误,是显示自己
      

  16.   

    这是冒泡,li和div是包含关系,div的所有动作都可以被他的子节点冒泡到,
    div.onmouseout=function(e){if(e.target=this){alert("1");}}这样,除非你点到ul之外div之内的空隙,否则你alert不了了!因为e.target是li对象,this是div对象
      

  17.   

    原来js 还有这种用法。。
    我也是用setTimeOut()的。。看了这个地址http://dl.dropbox.com/u/2555620/jquery/hovertest.html
    原来js的函数还能这样写。
    谢谢大家都回答。。
      

  18.   

    高手就是高手。。再次以热烈的掌声 thanks sky。。