Почему не прокрутка для прокрутки до моего якоря? - PullRequest
0 голосов
/ 18 января 2012

у меня

<!DOCTYPE html>
<html>
<head>

[...]

<script type="text/javascript" src="jquery-1.7.js"></script>

<script type="text/javascript" src="prototype.js"></script>

<script type="text/javascript">
function getusto(anchorid) {
$(anchorid).scrollTo();
} 

</script>

[...]

</head>
<body>

[...]

<a class="menu_links" href="#" onclick="getusto('welcome');">Welcome</a><br> 
<a class="menu_links" href="#" onclick="getusto('guidelines');">Guidelines</a> 

[...]

<a name="welcome" id="welcome"></a> blah balhb albha 

[...]

<a name="guidelines" id="guidelines"></a> blah blahb alhb

[...]

</body>
</html>

почему переход по ссылкам "Добро пожаловать / рекомендации" не приводит к прокрутке?

Я пытаюсь ссылаться на идентификаторы, в частности, из-за использования jquery-bbq, который делает это (насколько я могу судить), поэтому я не могу нормально использовать хэши / якоря.

они заставляют меня использовать больше символов для объяснения кода. как насчет того, чтобы сыграть в одном кадре pac-man:

("< . . . . o . . . . 
                    . 
                    .
                    .
                    .
             [Post Your Answer]

1 Ответ

1 голос
/ 18 января 2012

Возможно, браузер выполняет функцию Element.scrollTo, а затем переходит по ссылке ..., которая переносит вас в начало страницы (поскольку href равно #).

Почему бы не попробовать одну из этих двух вещей и посмотреть, что произойдет:

Попробуйте return false; из onclick: ( см. Здесь скрипку )

<a class="menu_links" href="#" onclick="getusto('welcome'); return false;">Welcome</a>
<a class="menu_links" href="#" onclick="getusto('guidelines'); return false;">Guidelines</a> 

Илиmake getusto return false: ( см. здесь )

function getusto(anchorid) {
  $(anchorid).scrollTo();
  return false;
} 

... и вернуть его значение из onclick:

<a class="menu_links" href="#" onclick="return getusto('welcome');">Welcome</a>
<a class="menu_links" href="#" onclick="return getusto('guidelines');">Guidelines</a> 

Выполнение любого из двух предложений должно позволить Element.scrollTo вступить в силу, не следуя первоначальному назначению ссылок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...