Frage

Ich verwende die Sortiermethoden in Isotope (http://isotope.metafizzy.co/docs/sorting.html) und muss Elemente mit einem bestimmten CSS-Klassennamen, der ihnen zugewiesen ist, oben anzeigen, wenn auf einen Link geklickt wird.Die verbleibenden Elemente müssen unter den sortierten Elementen sichtbar bleiben, damit ich die Isotopenfilterung nicht verwenden kann.

Ich bin mit JS/jQuery nicht so vertraut, daher bin ich mir nicht einmal sicher, ob dieser Code überhaupt richtig dargestellt ist, aber derzeit werden meine Elemente nach Datum sortiert, was großartig ist, aber das gilt für alle Elemente.Ich möchte, dass mein Code alle Elemente mit dem Klassennamen „Blogs“ findet und dann nach Datum sortiert.Das ist mein Code bisher:

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

Lösung

Isotope führt eine normale Sortierung basierend auf dem zurückgegebenen Wert der von Ihnen bereitgestellten Funktion durch.

Sie müssen also etwas zurückgeben, das das bringt .blog Elemente oben ..

Ich gehe davon aus, dass Sie nur das Datum verwendet haben $elem.find('.date').text()

Um dies zu ändern, können Sie am Anfang einfach ein Leerzeichen für Elemente hinzufügen, die vorhanden sind .blog

Versuchen

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

Update für Kommentare

    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();
        },
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top