Dynamiczne rodzaje izotopów
Używam wtyczki jQuery Isotope (http://isotope.metafizzy.co/), która jest niesamowita, ale mam problem z tworzeniem tego rodzaju. To bardziej problem z JavaScriptem niż cokolwiek, co ma związek z samym izotopem.
Problem polega na tym, że dynamicznie buduję dane sortowania. Stworzyłem więc funkcję, która tworzy sortData. Przykład poniżej:
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;
}
Problem polega na tym, że anonimowa funkcja wewnątrz zawsze działa po uruchomieniu całej funkcji getSortData (). Wynik ostatniego elementu tablicy sortowania jest przypisany do zmiennej sort [i].
Jest to pokazane na tym skrzydle:http://jsfiddle.net/xzZR4/ Zobaczysz, że element „name” jest zawsze wysyłany do konsoli.
Nie mogę wymyślić innego sposobu utworzenia obiektu getSortData, który umożliwi przekazanie poprawnej nazwy sortowania.
Czy ktoś ma jakieś pomysły?