0

別の新しいサブメニューをナビゲーションに挿入するのに問題があります。

ここに私のJavascriptコードがあります:

// Main Nav Javascript Function *****************************************
var navTimer = "";
bop = new Object();
bop.targetDiv = "";
bop.hide = function(){
document.getElementById(bop.targetDiv).style.visibility = "hidden";
}

function openNav(myDiv){
if(bop.targetDiv != "") bop.hide();
    bop.targetDiv = myDiv;
    clearTimeout(navTimer);
    document.getElementById(myDiv).style.visibility = "visible";
    document.getElementById(myDiv).onmouseout = function(){
        navTimer = setTimeout("bop.hide()", 100);
    }
    document.getElementById(myDiv).onmouseover = function(){
        clearTimeout(navTimer);
    }
}

function hideNav(myDiv){
    bop.targetDiv = myDiv;
    navTimer = setTimeout("bop.hide()", 150);
}

<!-- Display Sub Nav / Clear Sub Nav -->
function SubNav(myVar){
document.getElementById(myVar).style.visibility = "visible";
}

function clearNav(myVar){
document.getElementById(myVar).style.visibility = "hidden";
}

function shortPopUp( url, name, width, height, scrollbars ) { 
    var top  = "0"; 
    var left = "0"; 

    if( scrollbars == null ) scrollbars = "0"; 

    str  = ""; 
    str += "resizable=1,titlebar=1,menubar=1,"; 
    str += "toolbar=0,location=0,directories=0,status=0,"; 
    str += "scrollbars=1" + scrollbars + ","; 
    str += "width=" + width + ","; 
    str += "height=" + height + ","; 
    str += "top=" + top + ","; 
    str += "left=" + left; 

    window.open( url, name, str ); 
}

そして、ここに私のHTMLコードがあります:

><div class="navItem" onMouseOver="SubNav('seat-twenty');" onMouseOut="clearNav('seat-twenty');"><a href="fps_twenty2.html" target="frame">Twenty2</a><div id='seat-twenty' class="dropDown" onMouseOver="SubNav('seat-twenty');" onMouseOut="clearNav('seat-twenty');">
<div class="navItem"><a href="fps_twenty2.html" target="frame">Twenty2 Overview</a></div>
<div class="navItem"><a href="fb_twenty2_black.html" target="frame">Twenty2</a></div>
<div class="navItem"><a href="fb_twenty2_red.html" target="frame">Twenty2-US</a></div>
<div class="navItem"><a href="fb_twenty2_red_black.html" target="frame">Twenty2-UP</a></div>
</div></div>

サーバー上のページはここにあります。

問題は、ナビゲーションの座席タブの下にあります。新しいタグ「Twenty2」を挿入しようとすると、追加のサブメニューを開く代わりに、サブメニューは同じドロップダウンメニューにとどまります....コードをチェックして以上、私のエラー コードと正しいコードに違いはありません。

正常に動作するコードは次のとおりです。

> <div class="navItem" onMouseOver="SubNav('seat-heavy');"
> onMouseOut="clearNav('seat-heavy');"><a href="fps_heavy_duty.html"
> target="frame">Heavy Duty</a><div id='seat-heavy' class="dropDown"
> onMouseOver="SubNav('seat-heavy');"
> onMouseOut="clearNav('seat-heavy');">

誰が何が悪いのか知っていますか?

4

2 に答える 2

1

作業中のメニュー項目には、関連付けられたスタイルシート ルールがあります。

#seat-healthcare {
    background-color: #E7E7E7;
    position: absolute;
    margin-top: -18px;
    margin-left: 130px;
    z-index: 199;
    width: 119px;
    padding-top: 3px;
    padding-bottom: 4px;
}

しかし、あなたはそれを持っていない#seat-twentyので、それがポップアップするとすぐに消えます。左マージンが設定されていないため、スクロールアウトしたと見なされるからです。

全体として、メニューはおかしな方法で機能します。より一般的なものを用意することを強くお勧めします。そうすれば、すべての項目にスタイルシート エントリを用意する必要がなくなります。

スタイルシート stylesheet を挿入する関連 JS

// Browser & Platform Detection & Style Sheet Documentation *******************
if(navigator.userAgent.indexOf("Safari")!=-1){
    document.write("<link href='styles/MacSafari_style.css' rel='stylesheet' type='text/css'>");

}
if(navigator.userAgent.indexOf("Firefox")!=-1){
    if(navigator.appVersion.indexOf("Mac")!=-1){
    // Added Fix for High Rez Screens
    if((screen.width >= 1400) && (screen.height >= 1050)){
        document.write("<link href='styles/HighRez_MacMozilla_style.css' rel='stylesheet' type='text/css'>");
    } else {
        document.write("<link href='styles/MacMozilla_style.css' rel='stylesheet' type='text/css'>");
    }
} else {
    document.write("<link href='styles/Mozilla_style.css' rel='stylesheet' type='text/css'>");
    }
}
if(navigator.appName == "Microsoft Internet Explorer"){
    if(navigator.appVersion.indexOf("Mac")!=-1){ 
        document.write("<link href='styles/MacIE_style.css' rel='stylesheet' type='text/css'>");
    } else {
    document.write("<link href='styles/IE_style.css' rel='stylesheet' type='text/css'>");
}
}
于 2012-07-12T20:28:02.900 に答える