0

メニューをクリックすると、ホームリンク( http://www.obsia.com )を除いて、アクティブなリンクが表示されます。強調表示されることはありません。遊んでみましたが、わからないようです。これは、リンクを強調表示するために使用したjqueryコードですか?

 $(function(){
   var path = location.pathname.substring(1);
   if ( path )
     $('.nav a[href$="' + path + '"]').attr('class', 'active');   
 });

また、製品ページに別のメニューがあり、兄弟の親とグローバルメニューの製品を強調したいと思います。これは、製品メニューのjqueryコードです。

 $(function() {
var pathname = location.pathname;
var highlight;
//highlight home
if(pathname == "")
    highlight = $('ul#accordion > li:first > a:first');
else {
    var path = pathname.substring(1);
    if (path)
        highlight = $('ul#accordion a[href$="' + path + '"]');
}highlight.attr('class', 'active');



// hide 2nd, 3rd, ... level menus
$('ul#accordion ul').hide();

// show child menu on click
$('ul#accordion > li > a.product_menu').click(function() {
    //minor improvement
    $(this).siblings('ul').toggle("slow");
    return false;
});

//open to current group (highlighted link) by show all parent ul's
$('a.active').parents('ul').show();
$('a.active').parents('h2 a').css({'color':'#ff8833'});

//if you only have a 2 level deep navigation you could
//use this instead
//$('a.selected').parents("ul").eq(0).show();

}); });

私はこれを追加してみました:

        $(this).parents('ul').addClass('active');

しかし、それはうまくいかないようですか?

誰かがそれを達成する簡単な方法を持っていますか?助けていただければ幸いです。

よろしく、G

4

3 に答える 3

1

Firebugでは、行のハイライトが未定義}highlight.attr('class', 'active');であることがわかります。その上のIfステートメントの周りの角かっこを修正する必要があるようです。

于 2010-03-15T14:13:35.460 に答える
1

私はあなたのJavascriptをデバッグしました。ホームページの場合、location.pathname が文字列「/」に評価されるため、ホーム リンクは強調表示されません。したがって、変数 'path' には空の文字列が割り当てられます。これは、変数「highlight」が割り当てられていないことを意味します。

// path is assigned the empty string
var path = location.pathname.substring(1);

// evaluating to false
if (path) {
    // we never get here
    highlight = $('ul#accordion a[href$="' + path + '"]');
}

// getting a null pointer exception
highlight.attr('class', 'active');
于 2010-03-15T20:17:17.723 に答える
0

ホームページのリンクをメニュー バーで強調表示する方法を見つけました (それが、メニュー バーで強調表示されない唯一のリンクでした)。これが私がしたことです:

 $(function(){
   var pathname = location.pathname;
   var path = pathname.substring(1);
    if(path == "")
        $('.nav a:first').addClass('active');
   else (path)
     $('.nav a[href$="' + path + '"]').attr('class', 'active');   
 });
于 2010-03-16T13:56:36.390 に答える