1
我使用的jQuery Isotope插件(http://isotope.metafizzy.co/)很棒,但是我在創建排序時遇到了問題。這是一個JavaScript問題,而不是與Isotope本身有關的任何問題。同位素動態排序
問題是我正在動態構建排序數據。所以我創建了一個使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()函數運行後運行。導致sorts數組中的最後一項被分配給sort [i]變量。
這是在這個小提琴中顯示:http://jsfiddle.net/xzZR4/ 你會看到,'name'項總是輸出到控制檯。
我想不出另一種方法來創建getSortData對象,它將允許傳遞正確的排序名稱。
任何有任何想法的人?
這與插入的最後一個元素有什麼關係? – Bytemain
Chiyou你是什麼意思?這與插入的最後一個元素無關,而是關於種類。 –
我看不到舊代碼有任何改進或改變? – Bytemain