2

jQuery / CSS ポップアップ スタイルの Div を作成しました。div のコンテンツは ajax-request によって読み込まれ、 .ajax_popup_wrapper に配置されます。

TIPP にカーソルを合わせると、div が作成され、「BODY」に追加されます。(.ajax_popup_wrapper_wrapper)

div 関数で次の行を使用します。

$('.ajax_popup_wrapper_wrapper').mouseout(function(){
        // REMOVE DIV's
}); 

マウスが .ajax_popup_wrapper_wrapper の上にあるかどうかを確認します (そうでない場合は、それを閉じます!)

ajax_popup_wrapper にテキストと画像 (またはそのようなもの) しか含まれていない場合、これは問題ありません。結果に別の div (図では RESULT DIV) が含まれている場合、.ajax_popup_wrapper_wrapper が削除されているため、この RESULT DIV をホバーすることはできません。RESULT DIV は wrapper_wrapper の下にある必要がありますが、それでもクリック可能でなければなりません!

RESULT DIVの上にwrapper_wrapperを配置しようとしましたが、うまくいきました(divは閉じられません!)が、RESULT DIV内のリンクをクリックできません..

変です、助けてください!ありがとう!

編集: JSFIDDLE の例を追加しました http://jsfiddle.net/dH55F/19/

ここに画像の説明を入力

4

3 に答える 3

0

問題が解決しました!ありがとう!

私が変更しなければならなかった唯一のことは、mouseout() を削除して、mouseleave() に置き換えることでした...

$('.ajax_popup_wrapper_wrapper').mouseleave(function(){
// remove div
于 2013-03-28T15:07:29.363 に答える
0

マウスを移動した要素にクラスがあるかどうかを検出します [うまくいけば、その中の div に識別子を追加できます]。そうであれば、false を返します。それ以外の場合は、通常の削除コードを実行します。

$('.ajax_popup_wrapper_wrapper').mouseout(function(e){
    if($(e.toElement).hasClass('other')){
        return false;   
    }
    //do your remove code here
});

要素が DOM から完全に削除されているかどうかわからなかったので、次のコードotherは、クリック時に DOM ツリーに存在する のクラスを持つ任意の要素にイベント ハンドラーを委譲します。DOM の準備ができた後に追加されたかどうかに関係なく。

$(document).on('mouseout', '.other', function(e){
    e.stopPropagation();
});

を使用.stopPropagation()していることに注意.mouseout()してください.ajax_popup_wrapper_wrapper

理論的な実装 (jsFiddle)

于 2013-03-28T13:19:35.693 に答える
0

このように使って、

var mouse_is_inside = false;
$(document).ready(function()
{
    $('.ajax_popup_wrapper_wrapper').hover(function(){ 
        mouse_is_inside=true; 
    }, function(){ 
        mouse_is_inside=false; 
    });


});

参照 :これを参照してください

于 2013-03-28T13:26:36.740 に答える