Mouseout检测到新的div?

时间:2013-04-05 15:26:35

标签: javascript jquery mouseout

当我将鼠标悬停在div上时,我会做一些事情并在所述div旁边放置一个模态窗口。当我离开时我需要隐藏模态。问题是当我将鼠标移动到模态时它会消失,因为我不再将鼠标移到原始div上。

有没有办法检测我在mouseout事件中被鼠标移动的div?什么是最隐蔽模态div的最简洁方法?

3 个答案:

答案 0 :(得分:4)

尝试将模态窗口放在“mouseovered”div中。

它应该做的伎俩


编辑:

由于你不能把模态窗口放在里面你可以尝试一些“棘手”的东西。

var timerFade;
$(function(){
    $(".element").mouseout(function(){
        timerFade = setTimeout(500,function(){
            // make the modal disappear
        });
    });
    $("#modalWindow").mouseover(function(){
        clearTimeout(timerFade);
    });
    $(".element").mouseover(function(){
        timerFade = setTimeout(500,function(){
            clearTimeout(timerFade);
        });
        // if modal is hidden, show it or move from another
            // element whith same behavior
    });

});

假设您想要的div具有类“element”,而模态窗口具有id“modalWindow”。

这意味着您在设定的超时时隐藏模态窗口,并且当您在模态获胜或元素上再次翻转时清除模态窗口

只是一个想法^^

Example here

答案 1 :(得分:3)

如果你可以用另一个div包围这两个div。

<div id="outter">
  <div id="inner">
    ....some stuff
  </div>
  <div id="modal">
    ...some stuff
  </div>
</div>

将mouseover设置为内部,将mouseout设置为outter。

答案 2 :(得分:0)

使用事件relatedTarget duh :(。如果任何人说:(