Функция показа / скрытия ссылки на jQuery приводит к прокрутке страницы - PullRequest
1 голос
/ 14 февраля 2011

Javascript и JQuery новичок здесь. Я написал ссылку на своей домашней странице, которая должна переключать видимость блока текста в элементе под ним. Вот HTML, сопровождаемый блоком Javascript, который реализует поведение show / hide.

<a href="#hh_bibtex">Show BibTeX</a>
<div class="bibtex" id="hh_bibtex">
  This text should appear and disappear.
</div>

<script type="text/javascript">

  $("#hh_bibtex").hide();

  $("[href='#hh_bibtex']").click(function(){
    if ( $(this).html() == "Show BibTeX" ) {
      $(this).html("Hide BibTeX");
      $("#hh_bibtex").show();
    } else {
      $(this).html("Show BibTeX");
      $("#hh_bibtex").hide();
    }
  });

</script>

Это работает нормально, за исключением одной очень раздражающей причуды: когда я нажимаю на ссылку, чтобы показать текстовый блок, не только появляется текст, но страница мгновенно прокручивается вниз, так что «Этот текст должен появляться и исчезать» в самая верхняя часть окна браузера. Это очень дезориентирует. К счастью, обратное неверно: когда я нажимаю на ссылку, чтобы текст исчез, окно не прокручивается.

Как я могу устранить эту нежелательную прокрутку?

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Ой, простите: нашел ответ здесь .

0 голосов
/ 21 марта 2019

Спасибо, что немного поработали и предоставили ссылку, по которой вы нашли свой ответ. Для меня ключ ставил: event.preventDefault(); сразу после события click и перед выполнением моего метода jquery .show ().

 $("#playbuttonahref").click(function() {
        event.preventDefault();
    $("#hiddenvideocontainer").show('slide', { direction: "left" }, 500);
    });
...