У меня есть две функции JS, одна из которых добавляет опции в поле выбора
function addOption(selectId, text, value) {
var selectbox = document.getElementById(selectId);
var optNew = document.createElement('option');
optNew.text = text;
optNew.value = value;
try {
selectbox.add(optNew, null); //page position resets after this
}
catch(ex) {
selectbox.add(optNew);
}
}
и другой, который выполняет document.getElementById (formId) .appendChild (newHiddenInput) в аналогично простой функции.
Они оба работают, элементы добавляются как положено. Однако при вызове любого из них страница сбрасывает свою позицию прокрутки в верхнюю часть страницы в IE6 и FF. Нет обратной передачи, это чисто клиентская манипуляция. Я установил точки останова в Firebug, и это происходит сразу после того, как будет выполнен element.appendChild или select.add. Я знаю, что могу использовать JS, чтобы вручную установить позицию прокрутки, но я не думал, что это необходимо, когда страница не перерисовывается.
Я не эксперт по JS или DOM, поэтому я вполне могу что-то упустить, но я посмотрел здесь и пробежался по их примерам с опциями Попробуй здесь, и я могу ' Я не могу повторить проблему, указав на то, что кодовая база, с которой я работаю, является виновником.
Есть идеи, почему позиция прокрутки сбрасывается? jQuery также доступен для меня, если он предоставляет лучшую альтернативу.