所以我有一對<select>
框,並有一個jQuery腳本來將選定的<option>
從一個選擇框轉移到另一個選擇框。我也有一個相反的功能。這工作正常,除非我把<option>
s放回到第一個<select>
,它們被追加到底部而不是像以前一樣按字母順序排列。在jQuery事件中調用函數不起作用
所以我發現this question此功能提供:
function sortSelect() {
var options = $('#inactiveTickers option');
var arr = options.map(function(_, o) {
return {
t: $(o).text(),
v: o.value
};
}).get();
arr.sort(function(o1, o2) {
return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0;
});
options.each(function(i, o) {
console.log(i);
o.value = arr[i].v;
$(o).text(arr[i].t);
});
}
然後,我有這個jQuery捕獲click事件中的鏈接ID爲#remove
:
$('#remove').click(function() {
return !$('#activeTickers option:selected').remove().appendTo('#inactiveTickers');
sortSelect();
});
所以在第一線函數執行<option>
標記的移動,第二個函數應該調用sortSelect
函數。 麻煩的是我不認爲調用sortSelect
函數(控制檯日誌中沒有任何內容,函數應該寫入它)。我的代碼有什麼問題?
你'return'在第一線,執行結束還有... – tpeczek 2013-05-10 10:43:00
此外,你的'sortSelect'功能只有各種'選擇#inactiveTickers' - 你可能要做出一個參數,以及.. – techfoobar 2013-05-10 10:44:43
@techfoobar是的,我會把它作爲一個參數,只是想讓它首先工作。謝謝 – harryg 2013-05-10 10:53:38