2012-03-14 46 views
1

我正在使用Isotope内的排序方法(http://isotope.metafizzy.co/docs/sorting.html),并需要显示具有特定CSS类的元素单击链接时分配给它们的名称。其余元素必须在排序的元素下方保持可见,所以我不能使用同位素过滤。同位素:选择并显示顶部的.xx类

我对JS/jQuery不太了解,所以我甚至不确定这段代码是否正确设置,但目前我的元素按日期排序很好,但是它对所有元素都这样做。我希望我的代码能够找到类名为“blogs”的所有元素,然后按日期排列。这是我到目前为止的代码:

getSortData : { 
     blogs : function($elem) { 
     return $elem.attr('.blogs'), $elem.find('.date').text(); 
     } 
    } 

回答

3

同位素根据您提供的函数的返回值进行正常排序。

所以你需要返回的东西,放.blog元素在顶部..

我假设的日期只有你使用$elem.find('.date').text()

因此,要改变这一点,你可以只在添加一个空格初期,由于某些.blog

元素尝试

getSortData : { 
    blogs : function($elem) { 
    var isBlog = $elem.hasClass('blogs'); 
    return (isBlog?' ':'') + $elem.find('.date').text(); 
    } 
} 

更新征求意见

sortBy: 'initial', 
    sortAscending : false, 
    itemSelector: '.module', 
    getSortData: { 
     initial: function($elem) { 
      return $elem.find('.date').text(); 
     }, 
     blogs: function($elem) { 
      var isBlog = $elem.hasClass('blogs'); 
      return (isBlog ? '9' : '') + $elem.find('.date').text(); 
     }, 
+0

哇,这就是工作出色...谢谢!但现在唯一的问题是,具有最早日期的框首先显示。为了解决这个问题,我可以在我的同位素函数中放入sortAscending:false,但这意味着旧内容会显示在页面加载的顶部。这是一个独立的问题,但你知道一种方法来获得sortAscending:false选项在你上面给出的代码中工作吗? – egr103 2012-03-14 12:05:15

+0

@ egr103,日期文本是什么格式? (*示例*) – 2012-03-14 13:04:36

+0

我的日期格式是yyyymmdd – egr103 2012-03-14 13:29:11