ここに私の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: まったくロードされません。