如何使用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' });