Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   После вставки html кода через "jQuery html()" скролл автоматом прокручивает страницу (https://javascript.ru/forum/dom-window/37741-posle-vstavki-html-koda-cherez-jquery-html-skroll-avtomatom-prokruchivaet-stranicu.html)

E-Roman 05.05.2013 13:51

После вставки html кода через "jQuery html()" скролл автоматом прокручивает страницу
 
После вставки html кода через "jQuery html()" скролл автоматом прокручивает страницу вверх. Как отменить эту авто прокрутку?
Необходимо чтобы позиция экрана после динамической вставки данных не изменялась.

tropiko 05.05.2013 18:45

Проверил в Chrome (26.0.14), ничего не прокручивается, скролл остается на прежнем месте.

Какой браузер?

Возможно ошибка в алгоритме, покажите код.

Deff 05.05.2013 19:59

E-Roman,
Запоминайте перед началом загрузки scrollTop( );
По окончании загрузки восстанавливайте(возможно придется восстанавливать с задержкой setTimeout либо по событию
$(window).load

Посколь в подгружаемом контенте могут быть картинки и фреймы, полная загрузка которых растягивается и после завершения подгрузки контента HTML

E-Roman 06.05.2013 00:04

Проблема решена
 
Проблема решена, надо было удалить атрибут (href='#'), т.к. событие onClick висело на теге <a>.

tropiko 06.05.2013 06:54

Может тогда имеет смысл навесить обработчик не на ссылку, а, скажем, на span. Не стоит смущать пользователя и браузер пустыми ссылками.

Либо так:
<a href="some.html" class="js-link">Click me!</a>

$('.js-link').on('click', function(e){
   // TODO: Полезное действие
   e.preventDefault(); // Отмена действия браузера по-умолчанию
});


Часовой пояс GMT +3, время: 16:49.