我有一個selectionChange事件調用的函數,它將可見選擇框中的選擇複製到隱藏的但相同的選擇框。我使用的代碼在Chrome中運行,但在IE11中失敗(刪除隱藏選擇框中的所有選項)。使用.filter()在選擇(列表框)中的編程更改在Chrome中可用,但不能在IE11中工作
self.selectionChanged = function() {
$('select#ListHidden option').removeAttr("selected");
$('#ListVisible option:selected').each(function (n, item) {
$('#ListHidden option').filter(function() { return $.trim($(this).text()) === item.text; }).attr('selected', true);
});
};
我能夠通過用下面的批量代碼替換.filter()方法來修復錯誤。
self.selectionChanged = function() {
$('select#ListHidden option').prop("selected", false);
$('#ListVisible option:selected').each(function (n, item) {
var a = $.trim($(this).text());
$('#ListHidden > option').each(function() {
var c = $.trim($(this).text());
if (a === c) {
$(this).prop('selected', true);
}
});
});
};
它適用於改變的方法,但我只是好奇,爲什麼我的第一次嘗試沒有奏效。我錯誤地實施了這種方法嗎?如果是這樣,那麼爲什麼它在Chrome中工作?有沒有更乾淨的方法來增加兼容性?
這看起來不像Knockout。 –
在淘汰賽中完成的唯一部分是初始函數調用並綁定到可見選擇框。 'self.selectionChanged = function(){' –