4

私は フィルタリングのために同位体で遊んでいます、そしてそれは素晴らしいです。ユーザーが画像の1つをクリックすると、別のページ(詳細ページ)が表示されますが、フィルタリング用のメニューは引き続き表示されます。今私が欲しいのは、ユーザーが可能性の1つをもう一度クリックすると、メインページに戻りますが、すでにフィルターされた結果が表示されます。

私はすでにこのページ(http://isotope.metafizzy.co/docs/hash-history-jquery-bbq.html)を読みましたが、私は多くのことを理解していなかったことを告白します

彼らが推奨したように、私は次のHTMLコードを持っています:

div id="leftMenu">

            <span><a href="#filter=*" >All Menus</a></span>
            <span><a href="#filter=.pizza" >Pizza </a></span>
            <span><a href="#filter=.soda" >Soda </a></span>
            <span><a href="#filter=.popcorn" >PopCorn</a></span>
            <span><a href="#filter=.beer" >Beer</a></span>
         </div> 

および後続のJsコード

$('#leftMenu span a').click(function() {
        // get href attr, remove leading #
        var href = $(this).attr('href').replace(/^#/, ''),
        // convert href into object
        // i.e. 'filter=.inner-transition' -> { filter: '.inner-transition' }
        option = $.deparam(href);
        // set hash, triggers hashchange on window
        console.log('value de href: '+href+ ' || option: '+option);
        $.bbq.pushState(recursiveDecoded);

        return false;
    }); 

しかし、depram関数でエラーが発生しました。$.depramは関数ではないことがわかります

depramメソッドを読み取るために他の追加ファイルをリンクする必要がありますか?

誰かが私に達成または理解する方法を手伝ってもらえますか?

どうもありがとう

編集-私の進捗状況 私は2つの余分なjsファイルを見つけました、私は私のプロジェクトをそれらにリンクし、次のコードを使用しました

$('#leftMenu span a').click(function() {
        // get href attr, remove leading #
        var href = $(this).attr('href').replace(/^#/, ''),
        // convert href into object
        // i.e. 'filter=.inner-transition' -> { filter: '.inner-transition' }
        option = $.deparam(href);
        // set hash, triggers hashchange on window
        $.bbq.pushState(option);
        console.log("--> " +option );
        //return false;
    });     


$(window).bind('hashchange', function(event) {
    alert('Hello');
    // get options object from hash
    var hashOptions = $.deparam.fragment();
    console.log(hashOptions);
    // apply options from hash
    $('#leftMenu span a').isotope(hashOptions);
})
// trigger hashchange to capture any hash data on init
.trigger('hashchange');

エラーはありません。しかし、それはフィルターではありません。

アラートを受け取ることができます(「こんにちは」)。

何か案は??

4

1 に答える 1

2

私は解決策を見つけました。jsコードにエラーがありました。

これがコードです

$container.isotope({});


    $('#leftMenu span a').click(function() {
        // get href attr, remove leading #
        var href = $(this).attr('href').replace(/^#/, ''),
        // convert href into object
        // i.e. 'filter=.inner-transition' -> { filter: '.inner-transition' }
        option = $.deparam(href);
        // set hash, triggers hashchange on window
        $.bbq.pushState(option);
        return false;
    }); 



    $(window).bind('hashchange', function(event) {
        // get options object from hash
        var hashOptions = $.deparam.fragment();
        // apply options from hash
         $container.isotope(hashOptions);
    })
    // trigger hashchange to capture any hash data on init
    .trigger('hashchange'); 

$container.isotope(hashOptions);メニュー項目を参照していると思いましたが、実際には結果コンテナを参照しています。

于 2012-09-09T18:55:40.670 に答える