jQuery addClass заставляет окно прокручиваться вверх на Android и iPhone

Я работаю над страницей, где внизу находится элемент, который активируется нажатием на него. Затем элемент расширяется (мгновенно) в высоту, чтобы показать свое содержимое. Это делается путем добавления к этому элементу класса ("".active") с jQuery.

То, что действительно добавляет .active, — это блок отображения и некоторая высота. Однако каждый раз, когда вы нажимаете на нее, браузер возвращается наверх. Если я закомментирую часть addClass в javascript, она будет вести себя нормально.

На заметку: в теге привязки нет «href=#».


person Kasper    schedule 06.03.2012    source источник
comment
что, если вы попробуете добавить класс другим способом? как setattribute или около того   -  person Eric Frick    schedule 06.03.2012
comment
То же самое происходит! Я предполагаю, что это может быть какая-то проблема с рендерингом.   -  person Kasper    schedule 06.03.2012
comment
Вы убедились, что с вашими стилями/классом все в порядке? что произойдет, если вы статически назначите этот класс элементу? Назначьте класс и просто динамически показывайте/скрывайте элемент, используя свойство css. Это производит такое же поведение?   -  person Nilesh    schedule 06.03.2012


Ответы (1)


В качестве временного исправления вы можете возвращать экран в исходное положение каждый раз, когда он нажимается.

$('.troublemaker').click(function(e){
   var currentScroll = $(document).scrollTop();
   setTimeout( function(){  $(document).scrollTop( currentScroll ); }, 10 );
});
person Funkodebat    schedule 09.06.2012