0

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

有没有办法检测我在 mouseout 事件中将鼠标悬停在什么 div 上?什么是不隐藏模态 div 的最干净的方法?

4

3 回答 3

4

尝试将您的模态窗口放在“鼠标悬停”的 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 具有类“元素”并且模态窗口的 id 为“modalWindow”。

这意味着您在设置的超时时隐藏模态窗口,当您在模态胜利或元素上再次翻转时将其清除

只是一个想法^^

这里的例子

于 2013-04-05T15:30:06.873 回答
3

如果您可以将两个 div 都用另一个 div 包围。

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

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

于 2013-04-05T15:30:44.953 回答
0

使用事件relatedTarget duh :(。如果有人这么说会很有帮助:(

于 2013-04-05T20:09:12.650 回答