0

divにマウスオーバーすると、いくつかのことを行い、そのdivの横にモーダルウィンドウを配置します。マウスを離すと、モーダルを非表示にする必要があります。問題は、マウスをモーダルに移動すると、元のdivにマウスを合わせなくなったため、モーダルが消えてしまうことです。

mouseout イベントでマウスオーバーしている div を検出する方法はありますか? モーダル div を非表示にしない最もクリーンな方法は何ですか?

4

3 に答える 3

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にクラス「要素」があり、モーダルウィンドウに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>

マウスオーバーを内側に、マウスアウトを外側に設定します。

于 2013-04-05T15:30:44.953 に答える