IE медленный, медленный, медленный.Поэтому вы должны проверить свой код, чтобы минимизировать ненужные операции.
@ Идея Аррона Дигуллы хороша.Но вы также можете минимизировать время процессора следующими изменениями:
function moveUp() {
var select = $selectedList[0];
for (var i = 1, n = select.options.length; i < n; i++)
var selected = select.options[i],
selectedPrior = select.options[i - 1];
// Don't locate obj/array element more than once
if (selected.selected && !selectedPrior.selected) {
select.insertBefore(selected, selectedPrior);
break; // Since we have found the right elements, don't do
} // any further checking
}
Добавлено: Хммм, теперь я вижу, что можно выбрать несколько элементов.Итак, вам нужно переместить несколько предметов, да?В этом случае утверждение перерыва не правильно.
Захватывает ли вас слой пользовательского интерфейса IE?IE не обновляет внешний вид экрана до тех пор, пока не закончится поток JS.Обходной путь должен запустить таймер с 0 сек.Это уступит движку рендеринга IE и позволит обновлять экран.