3

現在、Ben のAlman jquery-hashchange プラグインを使用して、ハッシュでページ番号を使用しています。

$(document).ready(function(){
    $(window).hashchange( function(){
      var hash = (location.hash) ? location.hash.slice(1) : 'page1';
      $.ajax({
          url: '/list/' + hash, // result url like page1, page2 etc.

ここで、もう 1 つの値を追加する必要があります - filter。結果のハッシュURLは次のようになると思います

#page1&filter=1-1-0 
#filter=1-1-0 (if page number is omitted)
#page1 (if filter is not defined)

それを解析する方法は?pageつまり、 が定義されているかどうか、 が定義されているかどうかを理解する方法filter(および値は何ですか - 11および0- 個別に必要です)?

Ben の Alman BBQ プラグインについて考えていましたが、(1) このような単純なタスクには複雑すぎるように見えます。(2) 値なしでパラメーター (page1、page2 など) を使用する方法がわかりません。

4

1 に答える 1

5

ハードコードされた 2 つの変数に対する非常にシンプルで拡張不可能なパーサー:

var hash_parts = location.hash.split('&', 2); //2 - limit, may be changed if more than two arguments

for(i in hash_parts) {
    if(hash_parts[i].indexOf("page") === 0) { //begins with "page"
        var current_page_number = hash_parts[i].substr(4);
    }
    else if(hash_parts[i].indexOf("filter") === 0) { //begins with "filter"
        var filter = hash_parts[i].split('=', 2);
        var filer_values = filter[1].split('-'); //filter_values == {'1', '1', '0'}
    }
}

簡単に汎用化できます。

こちらもご覧ください: JavaScript でクエリ文字列を解析するwindow.location.search.substring(1)-ハッシュに変更するだけです。

于 2011-11-05T09:38:19.340 に答える