Справка по Javascript, переключение текста продолжает переходить к началу страницы - PullRequest
4 голосов
/ 15 февраля 2011

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

<script type="text/javascript">
function toggleVisibility() {
  document.getElementById("toggleMe").style.display = "";
  if(document.getElementById("toggleMe").style.visibility == "hidden" ) {
    document.getElementById("toggleMe").style.visibility = "visible";
  }
  else {
  document.getElementById("toggleMe").style.visibility = "hidden";
   ev.preventDefault();
    return false;

  }
}
</script>



 <a href="#" onclick="toggleVisibility();">Click to toggle visibility.</a></p>

<div id="toggleMe" style="visibility: hidden;"> Something to Hide and show.

Дисплей сворачивается, а видимость сохранит его.

все в одном файле HTML. Я прочитал, что сделали другие, и я попробовал ev.preventDefault (); вернуть ложь; код в конце функции, но ничего.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 15 февраля 2011

Измените атрибут href в теге A на: javascript:; вместо #

Так что используйте это для создания своего якоря с поддержкой JavaScript:

<a href="javascript:;">

добавлено (справочная информация):

Символ # обозначает закладку. Опуская название закладки, например, #bottom браузер рассматривает закладку как «верх страницы», прокручивая ее до верха. Ваша проблема не имеет ничего общего с закладками, однако использование # для определения пустой ссылки для javascript, поддерживающего теги привязки (A), не подходит. Вы должны использовать: javascript:; или javascript:void(0);, чтобы указать, что это не навигационная привязка.

0 голосов
/ 15 февраля 2011

Или просто всегда возвращайте false, а не только в предложении Else.

...