0

ここに私のjsfiddleがあります:http://jsfiddle.net/HhBEJ/3/

背景画像などがあるため、一部のコードがjsfiddleで見栄えが悪いにもかかわらず、ナビゲーションメニューに問題があります。私がやりたいことは次のとおりです。

ページ (index.htm) をロードするときに、現在ホームページにいることを示すページ マーカー (現在の名前を付けました) が必要です。移動する別のページをクリックすると、前のページから現在のページを削除し、curPage を新しい現在のページにします (jquery でこれを実行したことがわかります (正しく実行したと思います))。メニュー。たとえば、javaScript をクリックしたときに「web > web215 > JavaScript」に移動すると、Web の親 Web215 の子と javaScript の孫が「現在の」ID ですべて強調表示されます。しかし、クリックしたときの一瞬を除いて、それらのいずれにもそれを行っていません-ページが読み込まれたときに保存されていません。犯人はここのどこかにいると思います:

function youAreHere() {
var pathName = $(location).attr('pathname');
var curPage = pathName.substring(pathName.lastIndexOf('/') + 1);
$('a').each(function () {
    if ($(this).attr('href') == curPage) {
        $(this).attr('id', 'current');
    } else if (curPage == '') {
        $('a:first').attr('id', 'current');
    }
}); //END function

アラートを出すと、ページが正しく呼び出され、意図したとおりに機能しますが、現在のクラスは A: ロード後に留まるか、B: まったくロードされません。

4

1 に答える 1

1

css が間違っています。current の id を a タグに設定していますが、css では current の id を li タグに設定しています。これはあなたが必要とするものです:

div#menu li a#current {
 font-weight: bold;
 font-size: 16px;
 z-index: 6;
 background: transparent url('../images/menu_level1_item.png') repeat-x scroll 0pt 100%;
}
div#menu li a#current ul {
 font-weight: normal;
 font-size: 12px;
}
于 2013-10-29T05:11:54.817 に答える