1

Isotope (http://isotope.metafizzy.co/docs/sorting.html) 内の並べ替え方法を使用しており、リンクがクリックされたときに特定の CSS クラス名が割り当てられた要素を上部に表示する必要があります。残りの要素は、並べ替えられた要素の下に表示されたままにする必要があるため、Isotope フィルタリングを使用できません。

私はJS/jQueryにあまり慣れていないので、このコードが正しく設定されているかどうかさえわかりませんが、現在、私の要素は日付でソートされていますが、すべての要素に対してこれを行っています. クラス名が「blogs」のすべての要素をコードで検索し、日付順に並べ替えたいと思います。これまでの私のコードは次のとおりです。

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

1 に答える 1

3

Isotopeは、指定した関数の戻り値に基づいて通常の並べ替えを行います。

.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();
        },
于 2012-03-14T10:54:41.153 に答える