Isotope Dynamic Sorts

Ich verwende das jQuery Isotope-Plugin (http://isotope.metafizzy.co/), das fantastisch ist, aber ich habe ein Problem beim Erstellen der Sortierungen. Es ist eher ein JavaScript-Problem als etwas, das mit Isotope selbst zu tun hat.

Das Problem ist, dass ich die Sortierdaten dynamisch aufbaue. Also habe ich eine Funktion erstellt, die die sortData erstellt. Ein Beispiel unten:

function getSortData(){
    sortData = {};
    var sorts = ['symbol', 'number', 'score', 'name'];
    for (var i in sorts) {
      sortData[sorts[i]] = function($elem) {
        console.log(sorts[i]);
        return parseInt($elem.find('.'+ sorts[i]).text());     
      }
    }
    return sortData;
  }

Das Problem ist also, dass die anonyme Funktion im Inneren immer ausgeführt wird, nachdem die gesamte Funktion getSortData () ausgeführt wurde. Dies führt dazu, dass das letzte Element im Sortierarray der Sortiervariablen [i] zugewiesen wird.

Das zeigt diese Geige:http://jsfiddle.net/xzZR4/ Sie werden sehen, dass das Element 'name' immer an die Konsole ausgegeben wird.

Ich kann mir keine andere Möglichkeit vorstellen, um das getSortData-Objekt zu erstellen, mit dem der richtige Sortiername übergeben werden kann.

Jemand mit irgendwelchen Ideen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage