2

背景画像などがあるため、ナビゲーションバーは自分の側にあるものとまったく同じには見えませんが、jsfiddleでは少しファンキーに見えますが、ナビゲーションバー自体は完全に機能します。

私が抱えている問題は、ページにいるときはいつでも視覚的なマーカーが表示されることです。これは、他のページをクリックできないため、jsFiddle で非常によく、またはまったく表示されません)。クリックした特定のページで視覚的なマーカーを機能させることができますが、その特定のクリックのみです。私が達成しようとしているのは、あなたがどれだけ深くにいても、あなたがどこにいるかの視覚的なマーカーですページ (ul li a または ul li > ul li a または ul li > ul li > ul li a のいずれか)。例えば。

(私の言っていることを理解するには、Jsfiddle を見る必要があります) 「Web」にカーソルを合わせると、ドロップダウンが表示されます。次に、「jQuery」ページに移動することを決定した別のドロップダウンがある「Web-215」に進みます。

現在起こっていることは次のとおりです。「jQuery」をクリックすると、その単一のアイテムに「現在」のIDが与えられます。見た目を変えるもの。しかし、それはその単一のアイテムに対してのみ行っています。

私がやりたいことはこれです:「Web」だけをクリックすると、「Web」だけに属性が追加されますが、「Web > Web-215」またはそのフォルダー内の何かをクリックすると、Web AND が強調表示されます。ウェブ-215。また、「Web-215」の 3 番目のレベルである「jQuery」をクリックすると、3 つすべてで「現在」の属性が選択されます。異なるパスまたはリンクを選択する必要がある場合は、それらのルールに従う必要があります。

どこに行く必要があるのか​​ わかりませんが、ここにライブの例があります:http://jsfiddle.net/knvH4/2/

これは、jsfiddle の javascript の 16 行目に問題があると思う場所です。

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

1つだけでなく、すべてに「現在」の属性(またはID)が与えられるようにするには、どうすればよいですか。

4

2 に答える 2

0

これは私が思いついた私の問題に対する私の解決策でした-私に意見をくれた人々に感謝します!

function youAreHere() {
var pathName = $(location).attr('pathname');
var curPage = pathName.substring(pathName.lastIndexOf('/')+1, pathName.lastIndexOf('.'));
$('a').each(function() {
    var href = $(this).attr('href');
    var path = href.substring(0, href.lastIndexOf('.'));
    if(curPage.indexOf(path) !== -1) {
        $(this).addClass('current');
    } else if (curPage == '') {
        $('a:first').addClass('current');
    }
});//END function
于 2013-10-29T18:38:37.667 に答える