Изотопные Динамические Сорта
Я использую плагин JQuery Isotope (http://isotope.metafizzy.co/), который потрясающий, но у меня есть проблемы с созданием сортировок. Это скорее проблема JavaScript, чем что-либо, связанное с самим изотопом.
Проблема в том, что я строю данные сортировки динамически. Итак, я создал функцию, которая делает sortData. Пример ниже:
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;
}
Таким образом, проблема в том, что анонимная функция внутри всегда запускается после выполнения всей функции getSortData (). В результате последний элемент в массиве сортировки присваивается переменной sort [i].
Это показано в этой скрипке:http://jsfiddle.net/xzZR4/ Вы увидите, что элемент 'name' всегда выводится на консоль.
Я не могу придумать другой способ создать объект getSortData, который позволит передать правильное имя сортировки.
У кого-нибудь есть идеи?