#javascript #bootstrap-4
Вопрос:
У меня есть панель навигации со ссылками, которые ведут к разным частям моей веб-страницы, я хочу, чтобы в JavaScript я сделал команду, и ссылка будет нажата, и веб-страница будет изменена.
Моя Панель Навигации
// Current JavaScript Method (Not Working)
document.getElementById("section2Button").click();
<nav class="navbar navbar-expand-sm bg-primary navbar-dark justify-content-center fixed-top">
<ul class="navbar-nav">
<li id="section1Button" class="nav-item">
<a class="nav-link" href="#section1">Colleges</a>
</li>
<li id="section2Button" class="nav-item">
<a class="nav-link" href="#section2">College Selected</a>
</li>
<li id="section3Button" class="nav-item">
<a class="nav-link" href="#section3">About Me</a>
</li>
</ul>
</nav>
Комментарии:
1. Вместо ссылки на якорь установите ссылку на другую страницу, т. е.
href="https://google.com"
2. Эй, блурфус, спасибо за ваше предложение,но я хочу, чтобы раздел изменений был на той же странице, поэтому в основном я хочу, чтобы веб-страница прокрутилась вниз до раздела веб-страницы,
3. затем вам нужно создать эти якоря на своей странице. т. е.
<h2 id="section3">Section 3</h2>
— см. developer.mozilla.org/en-US/docs/Web/HTML/Element/a4. Да, я понимаю, что вам нужно создавать якоря, но как я могу щелкнуть по ним в Javascript?
5. не уверен, что я понимаю, почему вам нужно нажимать на них через JS, но если вы это сделаете, вам нужно добавить прослушиватель событий — см. Ответ
Ответ №1:
document.querySelector("#section2Button a").click();
Вам нужно сделать запрос к тегу. И вы можете поместить его в любую функцию, которую хотите выполнить. Например, я помещаю это действие в кнопку.
Вы можете увидеть полную демонстрацию здесь.
function your_command() {
// Fixed query
document.querySelector("#section2Button a").click();
}
<button onclick="your_command()">Test command</button>
<nav class="navbar navbar-expand-sm bg-primary navbar-dark justify-content-center fixed-top">
<ul class="navbar-nav">
<li id="section1Button" class="nav-item">
<a class="nav-link" href="#section1">Colleges</a>
</li>
<li id="section2Button" class="nav-item">
<a class="nav-link" href="#section2">College Selected</a>
</li>
<li id="section3Button" class="nav-item">
<a class="nav-link" href="#section3">About Me</a>
</li>
</ul>
</nav>
<h2 id="section1">Section 1</h2>
<h2 id="section2" style="margin-top: 100px">Section 2</h2>
<h2 id="section3" style="margin-top: 100px">Section 3</h2>
Ответ №2:
Вам нужно добавить прослушиватель событий.
var htmlElement = document.getElementById("section2Button");
htmlElement.addEventListener('click', function() {
console.log('clicked');
});
смотрите демонстрацию
var htmlElement = document.getElementById("section2Button");
htmlElement.addEventListener('click', function() {
console.log('clicked');
});
<nav class="navbar navbar-expand-sm bg-primary navbar-dark justify-content-center fixed-top">
<ul class="navbar-nav">
<li id="section1Button" class="nav-item">
<a class="nav-link" href="#section1">Colleges</a>
</li>
<li id="section2Button" class="nav-item">
<a class="nav-link" href="#section2">College Selected</a>
</li>
<li id="section3Button" class="nav-item">
<a class="nav-link" href="#section3">About Me</a>
</li>
</ul>
</nav>
Комментарии:
1. обязательно посмотрите на ответ @tartarus — он предлагает другое решение, которое может лучше удовлетворить ваши потребности 🙂
2. Понял, спасибо вам, ребята, за помощь