llgruff
@llgruff
Scala

Почему при сворачивании toggle страница прокручивается к началу?

Во второй половине страницы есть калькулятор.
Справа от select'ов кнопка "карандаш", которая разворачивает toggle с пустым input внутри и устанавливает в него фокус.
Если сразу же свернуть toggle - всё окей, а если ввести что-нибудь в input и затем свернуть - страница прокрутится вверх к началу.
Почему?
Смотрю и пишу с мобильного android.
Не знаю как ведет себя с десктопа.
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
@zemka99
Проблема скорее всего в фокусе
$(".wpcc_icon.note").click(function(){
$(this).toggleClass("active").parent().parent().next().next().slideToggle("fast");
$(this).parent().parent().next().next().children().next().children(".wpcc_inputtext ").focus();
return false;
});
вот тут вы устанавливаете фокус на инпут, даже когда он скрыт, что и может вызвать ошибку
https://api.jquery.com/focus/ - вот тут так делать не рекомендуют
попробуйте прописать условие от класса
if($(this).hasClass("active")){
$(this).parent().parent().next().next().children().next().children(".wpcc_inputtext ").focus();
}
если не поможет, то можно попробовать запомнить координаты и вручную прокручивать страницу обратно
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
thewind
@thewind
php программист, front / backend developer
Кнопка карандаш случайно не ссылка с атрибутом href="#" ? Если да, то нужно делать либо event.preventDefault() либо return false после нажатия
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы