Ссылка с href= "#" прокручивает страницу вверх, когда используется с jquery slidetoggle
Возможный дубликат:
Как остановить прокрутку веб-страницы вверху при нажатии ссылки, которая запускает javascript?
Я использую jquery slidetoggle для отображения/скрытия div.
элемент, который управляет сдвигом, представляет собой текстовую ссылку (некоторый текст внутри <\a > )
который имеет href= "#" , поэтому он будет выглядеть как ссылка (подчеркивание, изменение курсора).
проблема заключается в том, что при нажатии ссылки, в дополнение к скользящему эффекту,
страница прокручивается вверх.
я попытался заменить href= "#" на href="", но это отключает эффект div show/hide.
я думаю, я мог бы добавить в тег Name= "somename", а затем установить href в href= "# somename"
но я бы предпочел не использовать такие трюки.
Почему href= "#" прокручивает страницу до вершины?
любые идеи будут высоко оценены
Ответы
Ответ 1
Несколько параметров:
Ответ 2
Вам нужно добавить return false;
в обработчик кликов.
Это предотвратит выполнение браузером действия по умолчанию для клика.
Ответ 3
Другие дали вам решения. Но для конкретного ответа на ваш вопрос #
относится к текущей странице. И поскольку интерпретация тегов - это показать верхнюю часть тега, щелчок по тегу #
прокручивает вас до верхней части текущей страницы.
Ответ 4
return false
или event.preventDefault()
- это то, что вам нужно в обработчике событий click, чтобы предотвратить действие по умолчанию. Элемент <a>
с href
of #
приведет к тому, что окно просмотра браузера переместится в начало страницы как действие по умолчанию