2012-02-27 11 views
0

私はJqueryを使用して、訪問者がアーカイブページのクエリの順序とページの量を変更できるようにしています。 (ページネーションと該当ディスプレイ場合)ページ'all/20'ごとに参照title/date/poularityによってアーカイブテンプレートのJqueryソートをページごとの/ビューごとに組み合わせて、互いにリセットしないようにすることはできますか?

ソート:アーカイブリストの一番上にありバーには次のようになります。私がこれまで持ってい

完全に動作する機能やテンプレートタグ:pastebin

これは、すべての素晴らしい作品が、現在は2つのイベントがお互いをリセットしている - 私は量を変更することができますか私は順序を変更することができることを意味しますが私はamtと並べ替えの作業を同時に行うことはできません。私はこれで複雑になりますか? 2つを組み合わせる簡単な方法はありますか?

$('.amt-button').click(function(){ 
    var a_str = $(this).text(); 
window.location.href = "?a="+a_str; 
    $(this).addClass("highlight"); 
}); 

$('.sorter-dropdown').change(function(){ 
var o_str = $(this).val(); 
window.location.href = "?o="+o_str; 
$(this).addClass("highlight"); 
}); 

あなたは、彼らがさまざまなイベントによって呼び出さなっている上で見ることができるように - それはすでにだった場合、私は何とか「A」または「O」の値を得ることができますが、私は思っていた - ボタンをクリックし、[変更]を選択両方を適用できるように、他のイベントで設定して呼び出しますか?

また、ユーザーの「現在の」並べ替え&のamtボタン/オプションを視覚的に強調表示したいので、イベントの後にイベントを再読み込みするとそのクラスのハイライトがリセットされます。新しいクエリがページをリロードした後にハイライトクラスを適用させる方法はありますか?

ありがとうございました!

+0

私は2つのイベントをどのように組み合わせるかを考えました - 私はアドレスバー(http://pastebin.com/Pp4QhgAf)-から値を取得しなければなりませんでした - しかし、現在のハイライトを維持する方法をまだ理解できません - 明日それに取り組む。 –

+1

WPSEへようこそ。申し訳ありませんが、これは話題にはなりません。私はフラグを立てるので、モデレータはそれをSOに移すことができます(これは同じQを2回尋ねることを避けます)。 – kaiser

答えて

0

私は元の質問のパート1に答えました(2つのイベントが自分自身をキャンセルしないようにする方法)。これは、urlから変数を取得して取り除くことでした。それが定義されていない場合は、アドレスにデフォルト値を使用し、URLに既に設定されている場合はその値を渡します。

この「並べ替えバー」は、これまでのように見えるものである(そして、それは働く!): how sort bar looks

フル機能(まだ少し厄介)Paste bin full code

私はまだ適用するとのトラブルを抱えていますクラスを現在のボタン/オプションにハイライト表示します。今のところ私のロジックは、ウィンドウロードで実行され、urlから変数を取得し、等しい値を持つボタンがあるかどうかを確認する関数を作ることです。しかし、私はいくつかの重要な部分がそこに欠けていると思う:

`// trying to make highlight style carry over. 
$(window).load(function(){ 
    // get the amt per value from url set it as amt_highlight var 
    var amt_highlight = $.getUrlVar('amt_per'); 
    // if a button with class.amount-buttons value is equal to amt_highlight 
    if ($('.amt-button').val(); == amt_highlight){ 
    // then add class to that button 
    $(this).addClass("highlight"); 
    }  
});` 

誰もが私が行方不明です何上の任意の洞察力を持っていますか?

0

私はもう一度自分の質問に答えました(ボタンとオプションを作ることについてのパート2は現在のクラスです)。私は彼らが両方ともどちらの質問にも関係していると信じています。同じ全体の機能の中でそれらを使用する - しかし、これはこのサイトの私の最初の投稿だった - だから多分私は誤解した。私は最終的に働いた:

$(".amt-button").addClass(function(index) { 
var addedClass; 
var amt_current = $.getUrlVar('amt_per'); 
var amt_val = $(this).val(); 
if (amt_val == amt_current) { 
    addedClass = "current"; 
} 
return addedClass; 
}); 

を説明するために:addclass機能は、AMT-Buttonクラスでボタンを呼び出して - 、その値はURLから取り除かVARの値に等しい場合 - 「現在の」クラスがあります問題の「現在の」ボタンに追加されます。ボタンのレンダリング方法を制御するのに適しています。うまくいけば、これは私のように苦労していた人を助ける。

関連する問題