【发布时间】:2013-05-05 00:38:45
【问题描述】:
所以我有一对<select> 框和一个jQuery 脚本来将选定的<option>s 从一个选择框传输到另一个选择框。我也有一个相反的功能。这很好用,除非我将<option>s“放回”第一个<select>,它们被附加到底部而不是像以前那样按字母顺序。
所以我发现这个功能是由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,它在 ID 为 #remove 的链接上捕获点击事件:
$('#remove').click(function() {
return !$('#activeTickers option:selected').remove().appendTo('#inactiveTickers');
sortSelect();
});
所以函数中的第一行移动了<option> 标签,第二行应该调用sortSelect 函数。
问题是我认为没有调用sortSelect 函数(控制台日志中没有任何内容,该函数应该写入它)。我的代码有什么问题?
【问题讨论】:
-
你在第一行有
return,执行到这里结束...... -
另外,你的
sortSelect函数只排序select#inactiveTickers- 你可能也想把它作为一个参数.. -
@techfoobar 是的,我会把它作为一个论据,只是想让它首先工作。谢谢
标签: javascript jquery