如何使用jquery同位素按日期(新)排序

原谅我,因为我对JS有点新手,只知道足以操纵。

对于熟悉Isotope的人( http://isotope.metafizzy.co/docs/sorting.html ),我在页面顶部有一个按钮按日期排序。 同位素找到元素

 01/04/2012  

有了这个:

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

哪个工作正常,但我需要翻转(下降)日期顺序

同位素有一个function:

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

但我无法让它工作 – 只是按默认设置按日期排序,而不是在我点击时排序。 我认为这只是一个语法问题……我如何/在哪里可以放置sortAscending:false?

谢谢…

编辑从Demos查看一些来源,我看到:

  

可以做到,但我已经通过传递这个来排序:

  

从早期的日期信息中查找范围…

这是我如何做到的, jsFiddle

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

日期的格式似乎并不重要,并且可以上升和下降。

parse()方法解析日期字符串并返回日期字符串与1970年1月1日午夜之间的毫秒数。

基本上它会将您的日期字符串转换为易于比较的漂亮实数。

以下是我按日期排序的事情。

如果您的日期格式为’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' });