1

さて、以前の開発者からサイトを継承して、いくつかのアップグレードを行いました。(クライアントではありませんが) 私を悩ませていることの 1 つは、実際には選択されていない場合でも、単一のタブが常に ".selected" タブになることです。技術的には、「選択されたデフォルト」だと思います。

サイトはrooferanchorage.comです。

.js の最後のセクションからデフォルトを削除しようとしましたが、効果はありませんでした。あなたがおそらく言うことができるように、私は完全なJavaScriptの読み書きができません。これが関連するコードだと思います-選択したクラスを正しく機能させる方法について何か提案はありますか?

isSelected:function(menuurl){
    var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^\//, "")
    return (tabdropdown.currentpageurl==menuurl)
},

    init:function(menuid, dselected){
        this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
        var menuitems=document.getElementById(menuid).getElementsByTagName("a")
        for (var i=0; i<menuitems.length; i++){
            if (menuitems[i].getAttribute("rel")){
                var relvalue=menuitems[i].getAttribute("rel")
                document.getElementById(relvalue).firstlink=document.getElementById(relvalue).getElementsByTagName("a")[0]
                menuitems[i].onmouseover=function(e){
                    var event=typeof e!="undefined"? e : window.event
                    tabdropdown.dropit(this, event, this.getAttribute("rel"))
                }
            }
            if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[i].href)){
                menuitems[i].parentNode.className+=" selected default"
                var setalready=true
            }
            else if (parseInt(dselected)==i)
                menuitems[i].parentNode.className+=" selected default"
        }
    }
4

1 に答える 1

1

ソースコードの72〜73行目は次のとおりです。

//SYNTAX: tabdropdown.init("menu_id", [integer OR "auto"])
tabdropdown.init("colortab", 3)

質問のコードを参照すると、initメソッドの条件を確認できます。このメソッドは、メニュー項目内のアンカーをURLとif (dselected=="auto" ...照合hrefして、選択する必要があるタブかどうかを確認します。

現在、コードは合格しています。つまり、常に4番目のタブになります。これは、「商用」が常に選択されている理由を説明する3ゼロベースのインデックスです。0,1,2,3

回答、これをに変更してみてください3"auto"静的htmlファイルを使用している場合(たとえば、residence.htmlが実際のhtmlファイルの場合)、整数を変更して、それぞれに対して選択する必要のあるタブを表してみてください。住宅は2、例えば、です。

于 2012-10-30T18:39:52.460 に答える