У меня есть веб-сайт, в котором, в HTML-коде, у меня есть навигационное меню:
<a href="#section1"> blabla </ a>
и в этом специальном разделе:
<p id="section1"> blabla </ p>
Потому что, когда я www.prova.it/# section1
" в URL-адресе, вы не www.prova.it/# section1
как www.prova.it/# section1
а только как www.prova.it
?
Когда вы нажимаете на гиперссылку с идентификатором элемента, браузер перемещает вас (прокручивает) к элементу!
Таким образом, эта ссылка <a href="#section1">blabla</a>
всегда будет перемещать браузер в местоположение элемента!
Для вашей информации: один HTML DOM может иметь только один элемент с указанным ID, поэтому в вашем документе вы можете добавить #section1
только к одному элементу, а другие элементы должны иметь отдельный идентификатор!
Ваши элементы идеальны! Гиперссылка приведет клиента (пользователя) к местоположению элемента. Единственная проблема, с которой вы могли столкнуться, - это
Неправильный идентификатор или ошибочный элемент нажата!
Элемент и гиперссылка на одной странице, без прокрутки!
Этот тип ошибки обычно возникает, когда документ выделен, и браузер больше не может прокручивать документ! Таким образом, вы не сможете увидеть изменения в свитке!
Вот ваш код: http://jsfiddle.net/afzaal_ahmad_zeeshan/5e7TF/
Я просто добавил некоторые поля для p
как
#section1 {
margin: 500px;
}
И когда я нажал на ссылку, она переместила браузер вниз!
Теперь ошибка на вашей странице, почему она не меняет URL-адрес, заключается в том, что вы используете либо
return false;
Или это:
event.preventDefault();
По URL-адрес остается неизменным!
Итак, попробуйте следующее:
$('a[href="#section1"]'.click(function () { // jQuery
history.pushState('', 'Page Name', '#section1');
}
history.pushState
Вы можете проверить это здесь: http://html5.gingerhost.com Попробуйте загрузить некоторые новые страницы.
event.preventDefault()
не является специфичным для jQuery. Это объект event
так как preventDefault()
является нативным JavaScript.