Упс, предложенный window.scrollTo
довольно паршиво и делает вещи непредсказуемыми.
Попробуйте это лучшее решение:
jQuery('body').bind('focusin focus', function(e){
e.preventDefault();
})
Или просто подключите ваш ввод:
jQuery('input.your-input-class').bind('focusin focus', function(e){
e.preventDefault();
})
Почему? Браузеры могут прокручивать сфокусированный элемент формы в представление по умолчанию при инициированном событии 'focusin' (в Firefox есть ошибка, поэтому вместо этого зацепите фокус) Поэтому просто скажите им, что не делайте этого явно.
Кстати, если событие focus
вызвано element.focus()
в вашем коде, то даже решение по факту не будет работать.
Таким образом, решение этой проблемы - заменить focus
триггер на select
, т. Е.
element.select()
кроме element.focus()
Если вам не нравится подход element.select()
, так как он будет select
текстом внутри элемента ввода, затем попытайтесь создать Range object
текста элемента ввода и сверните его, если хотите, извините за отсутствие время попробовать это в данный момент.