2012-01-09 30 views
7

私はJSの初心者だから許してください。jqueryアイソトープで日付順に並べ替える方法(新規)

アイソトープ(http://isotope.metafizzy.co/docs/sorting.html)に精通している人には、ページの上部にある日付でソートするボタンがあります。同位体は、要素これで

<span class="date"> 01/04/2012 </span> 

見つける:正常に動作します

$container.isotope({ 
    getSortData : { 
     date : function ($elem) { 
     return $elem.find('.date').text(); 
}}); 

を、私は(下降)日付順

同位体を反転させる必要がある機能があります。

$('#container').isotope({ 
    sortBy : 'date', 
    sortAscending : false 
}); 

しかし、私はそれを動作させることはできません - クリックするとソートするのではなく、デフォルトでソートされた日付をソートします。私はこれが文法の単なる問題だと思う...どのように/ sortAscending:falseを置くことができますか?

おかげで...私がいることがわかりデモからいくつかのソースを表示

EDIT:

<a href="#sortAscending=false"> 

を行うことができますが、私はすでにこれを渡すことでソートしています:

<a href="#sortBy=date"> 

これは、以前の日付情報でスパンを検出します...

+0

古いスレッドを復活させることはできませんが、これに対する答えは見つかりましたか? – ahollenbach

答えて

7

は日付の中でどのような形式は関係しているようだ、と作品はありませんjsFiddle

$container.isotope({ 
    itemSelector: '.element', 
    getSortData: { 
     date: function ($elem) { 
      return Date.parse($elem.find('.date').text()); 
     } 
    } 
}); 

、私はそれをやった方法です昇順と降順。

parse()メソッド日付文字列を解析し、1月1日の日付文字列と真夜中間のミリ秒数を返し、1970年

は基本的に、それは比較するのは簡単です素敵な固体番号にあなたの日付文字列をオン。

+0

ありがとう! jsFiddleには多くのソート例があります! – Paschalis

+0

私はあなたのjsFiddleで遊んだが、実際には動作していないようだ。最初に変数のサイジングをオフにして、並べ替え順をよりよく表示するようにしてください。 – magi182

+0

@ magi182日付ボタンをクリックしましたか? – apaul

2

日付でソートしたものを元気にします。

日付が'01/01/2012 'の形式であれば、それをjavascriptの日付オブジェクトに変換する必要があります。

getSortData: { 
    date: function ($elem) { 
     var dateStr = $elem.find('.date').text(), 
      dateArray = dateStr.split('/'), 
      year = dateArray[2], 
      month = dateArray[0], 
      day = dateArray[1]; 
     return new Date(year, month, day); 
    } 
} 

はその後、あなたは何ここにあなたの通常の

$('#container').isotope({ sortBy: 'date' }); 
+1

"return year.toString()+ month.toString()+ day.toString();"を返します。あなたのリターンはアルファベット順の週の日を並べ替えます – Blowsie

関連する問題