【发布时间】:2019-05-26 00:47:29
【问题描述】:
导航栏有问题。我希望在用户浏览不同页面时更改激活选项卡。
我使用的是基本模板,所以我不想为每个页面重现导航栏 html/css,所以我相信 javascript 是我的问题的答案。
我尝试使用另一个问题中的一些 Jquery,不幸的是它造成了一个单独的问题,我对 Jquery 不太熟悉,所以我发现很难解决这个问题。
这是 HTML
<div class="container-fluid">
<a class="navbar-brand" href="#"><img src="{% static 'images/sidespacer.png' %}"></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item active"><a class="nav-link" href="/Spaces">Home</a></li>
<li class="nav-item"><a class="nav-link" href="/Spaces/space">Spaces</a></li>
<li class="nav-item"><a class="nav-link" href="/Spaces/pricing">Prices</a></li>
<li class="nav-item"><a class="nav-link" href="/Spaces/howitworks">How it Works</a></li>
<li class="nav-item"><a class="nav-link" href="#">Contact</a></li>
{% if user.is_authenticated %}
<li class="nav-item"><a class="nav-link" href="{% url 'logout' %}">Log out
{{user.username}}</a></li>
{% else %}
<li class="nav-item"><a class="nav-link" href="{% url 'signup' %}">Sign Up</a></li>
<li class="nav-item"><a class="nav-link" href="{% url 'login' %}">Login</a></li>
{% endif %}
</ul>
</div>
</div>
</nav>
这是当前的 Jquery
$(document).ready(function() {
$( ".nav-item" ).bind( "click", function(event) {
event.preventDefault();
var clickedItem = $( this );
$( ".nav-item" ).each( function() {
$( this ).removeClass( "active" );
});
clickedItem.addClass( "active" );
});
});
Jquery 允许激活状态更改,但阻止用户被定向到链接。
提前致谢,
【问题讨论】:
-
你的代码有点混乱,为什么你用
event.preventDefault();代替li?因为".nav-item"类仅附加到li而li 默认没有点击行为 -
老实说,我对 jquery 的了解如此有限,以至于我很难理解你所说的。如果您有解决方案,请在下面分享并尽可能多地解释(像我 5 岁一样解释它:))
标签: javascript html css django bootstrap-4