ページを見てみると、私が見ているものは次のとおりです。
1) マジック ライン スクリプトは、クラス「current_page_item」を持つ要素に基づいて下線の幅を決定します。
これはすべてjavascriptなので。メニュー アンカー/リンクを設定して、current_page_item クラスを選択した項目に更新し、前の項目から削除する JavaScript を含める必要があります。CSSスタイルのように見えるので、強調表示の問題も更新する必要があります。
このための基本的なスクリプトは次のようになります。
function updateCurrent(e) {
$('.current_page_item').removeClass('current_page_item');
$(e).parent('li').addClass('current_page_item');
}
すべてのアンカーには、次のような onClick があります。
<a href="print.html" onclick="updateCurrent(this);">Print</a>
2) 2 番目の質問の要点を完全には理解していません。ナビゲーションは適切なコンテンツを指しているように見えます。
以下の追加コメントの編集:
$('#topnav li a').click(function(){
// Update the current item.
$('.current_page_item').removeClass('current_page_item');
$(this).parent('li').addClass('current_page_item');
var toLoad = $(this).attr('href')+' #content';
$('#content').hide('fast',loadContent);
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
function loadContent() {
$('#content').load(toLoad,'',showNewContent())
}
function showNewContent() {
$('#content').show('normal',hideLoader());
}
function hideLoader() {
$('#load').fadeOut('normal');
}
return false;
});
編集パート 2: マジック ラインで幅を無視するという問題がまだ発生していることがわかります。必要なのは、アンカーがクリックされている間です。初期ロードで適用したのと同じ計算も実行する必要があります。
更新されたマジック ライン js は次のようになります。
// DOM Ready
$(function() {
$("#topnav").append("<li id='magic-line'></li>");
// get the left margin of current page item
var marg = parseInt($(".current_page_item a").css("marginLeft"));
/* Cache it */
var $magicLine = $("#magic-line");
$magicLine
.width($(".current_page_item a").width())
.css("left", $(".current_page_item a").position().left + marg)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $magicLine.width());
$("#topnav li").find("a").click(
$el = $(this);
// Do the math for each click
leftPos = $el.position().left + marg;
newWidth = $el.parent().width() - marg;
$magicLine.stop().animate({
left: leftPos,
width: newWidth
});
}, function() {
$magicLine.stop().animate({
left: $magicLine.data("origLeft"),
width: $magicLine.data("origWidth")
});
});
/* Kick IE into gear */
$(".current_page_item_two a").mouseenter();
});