1

私は何日も問題に苦しんでいて、答えを見つけることができませんでした。

私はすべてのブラウザで正常に動作する小さなマウスオーバーを持っていますが、IE7、IE8、IE9では動作しません(驚き)。

意図は、divがメニューポイントのマウスオーバーで表示され、メニューまたはdivを離れると消えることです。問題を次の行に分離しました: if($('#top-navigation')。is(':hover')|| $('#header')。is(':hover')| | $('#menu a')。is(': hover')){IEの動作のため、これが問題の原因であると確信しています。

$(document).ready( function() {
    $mypage = $("body").attr("class");
    $("#"+$mypage).show();
    $("#menu a:contains('"+$mypage+"')").parent().addClass("current");

    $("#menu a").hover(function() {
        $(".transparent").hide();

        $("#menu li").removeClass("current");
        $(this).parent().addClass("current");

        $element = "#" + $(this).text();
        $($element).show();
    });

    function hide_popup(){
        if ($('#top-navigation').is(':hover') || $('#header').is(':hover') || $('#menu a').is(':hover')) {
            return false;
        }else{
            $("#menu li").removeClass("current");
            $(".transparent").hide();

            $mypage = $("body").attr("class");
            $("#"+$mypage).show();
            $("#menu a:contains('"+$mypage+"')").parent().addClass("current");
        }
    };
    $("body").mouseover(function() {
        window.setTimeout( hide_popup, 2000 );
    });
});

私はどんな助けにも満足しています!乾杯!

4

2 に答える 2

1

わかりました、私は解決策を考え出しました:

function hide_popup(){
    $("#top").hover(function () {
        return false;
    },function () {
        $("#menu li").removeClass("current");
              $(".transparent").hide();

        $mypage = $("body").attr("class");
        $("#"+$mypage).show();
        $("#menu a:contains('"+$mypage+"')").parent().addClass("current");
    });
};
于 2012-04-17T10:44:02.937 に答える
0

IEは、CSSの動的疑似クラスとそれに対応するJavaScriptイベントで常に悪名高い問題を抱えていました。あなたができる最善のことは、マウスの動きを追跡し、マウスがターゲット要素の領域に入ったときにのみコードルーチンを起動することです。つまり、screenXおよびscreenYイベントプロパティと組み合わせてmouseoverイベントを使用する必要があります。

于 2012-04-16T10:05:04.323 に答える