0

デュアルレイヤーナビゲーションを機能させようとしています。すべてがかっこいいですが、クラスcurrentを適切に設定するjQueryURLが何であるかに応じた要素。しかし、アラートでさえ機能しておらず、その理由はわかりません(jQueryの新機能)。

現在のところ:リモートテストサイト

    $(document).ready(function(){

    // url
    var $path = location.pathname.split("/");
    var $topnav_path = path[1];
    var $filternav_path = path[2];

    // current page
    var $test = "the category is: " + $topnav_path + " AND the filter is: " + $filternav_path;
    alert($test);

    // navigation
    $(function() {
        // set link to current page
        if ( $path[1] ) {
            $('#top_nav a[class$="' + $topnav_path + '"]').toggleClass('current');
        }
        // if link is root, set first child (home)
        if ( !$path[1] ) {
            $('#top_nav a:first').toggleClass('current');
        }

        // set filter to current filter
        if ( $path[2] ) {
            $('#filter_nav a[class$="' + $filternav_path + '"]').toggleClass('current');
        }
        // if link is root, set first child (home)
        if ( !$path[2] ) {
            $('#filter_nav a:first').toggleClass('current');
        }
    });
});

以下は、以下の最初の回答のように、(関数呼び出しの有無にかかわらず)機能しません。

    $(document).ready(function(){

    // url
    var path = location.pathname.split("/"),
        topnav_path = path[1] != undefined ? path[1] : false,
        filternav_path = path[2] != undefined ? path[2] : false;

    // test url
    var test = "the category is: " + topnav_path + " AND the filter is: " + filternav_path;
    alert(test);

    // navigation
    $(function() {
        // set top nav to current category or home
        if ( path[1] ) {
            $('#top_nav a[class$="' + topnav_path + '"]').toggleClass('current');
        }else{
            $('#top_nav a:first').toggleClass('current');
        }
        // set filter nav to current filter or all
        if ( path[2] ) {
            $('#filter_nav a[class$="' + filternav_path + '"]').toggleClass('current');
        }else{
            $('#filter_nav a:first').toggleClass('current');
        }
    });
});​
4

1 に答える 1

2

$test変数はありません、あなたはそれに名前を付けましたtest。他の変数についても同じことが言えます。

$(document).ready(function(){
    var path = location.pathname.split("/"),
        topnav_path = path[1] != undefined ? path[1] : false,
        filternav_path = path[2] != undefined ? path[2] : false;

    var test = "the category is: " + topnav_path + " AND the filter is: " + filternav_path;

    if ( path[1] ) {
        $('#top_nav a[class$="' + topnav_path + '"]').toggleClass('current');
    }else{
        $('#top_nav a:first').toggleClass('current');
    }

    if ( path[2] ) {
        $('#filter_nav a[class$="' + filternav_path + '"]').toggleClass('current');
    }else{
        $('#filter_nav a:first').toggleClass('current');
    }
});​
于 2012-12-19T09:39:35.730 に答える