Подтвердить что ты не робот

Ссылка с href= "#" прокручивает страницу вверх, когда используется с jquery slidetoggle

Возможный дубликат:
Как остановить прокрутку веб-страницы вверху при нажатии ссылки, которая запускает javascript?

Я использую jquery slidetoggle для отображения/скрытия div. элемент, который управляет сдвигом, представляет собой текстовую ссылку (некоторый текст внутри <\a > ) который имеет href= "#" , поэтому он будет выглядеть как ссылка (подчеркивание, изменение курсора).

проблема заключается в том, что при нажатии ссылки, в дополнение к скользящему эффекту, страница прокручивается вверх.

я попытался заменить href= "#" на href="", но это отключает эффект div show/hide. я думаю, я мог бы добавить в тег Name= "somename", а затем установить href в href= "# somename" но я бы предпочел не использовать такие трюки.

Почему href= "#" прокручивает страницу до вершины?

любые идеи будут высоко оценены

4b9b3361

Ответ 1

Несколько параметров:

  • Поместите return false; внизу вашего обработчика кликов, а href не будет следовать.
  • Измените href на javascript:void(0);
  • Вызвать preventDefault в событии в вашем обработчике:

    function( e ) {
      e.preventDefault();
      // your event handling code
    }
    

Ответ 2

Вам нужно добавить return false; в обработчик кликов.
Это предотвратит выполнение браузером действия по умолчанию для клика.

Ответ 3

Другие дали вам решения. Но для конкретного ответа на ваш вопрос # относится к текущей странице. И поскольку интерпретация тегов - это показать верхнюю часть тега, щелчок по тегу # прокручивает вас до верхней части текущей страницы.

Ответ 4

return false или event.preventDefault() - это то, что вам нужно в обработчике событий click, чтобы предотвратить действие по умолчанию. Элемент <a> с href of # приведет к тому, что окно просмотра браузера переместится в начало страницы как действие по умолчанию