我正在玩Flask和Bootstrap。我将导航设置为导航标签,并试图将活动类设置为活动标签。当链接第一次点击后,它会立即工作,但立即恢复到默认状态。我在这里有点茫然,任何解释为什么会发生这种情况将不胜感激。带有Flask的Bootstrap class.active函数
这是我的layout.html。
<body>
<div id="container-fluid">
<nav role="navigation">
<ul class="nav nav-tabs">
<li role="presentation" class=""><a href="{{url_for('index') }}" title="Home">Home</a></li>
<li role="presentation" class=""><a href="#" title="Projects">Projects</a></li>
<li role="presentation" class=""><a href="{{ url_for('about') }}" title="About">About</a></li>
</ul>
</nav>
{% block content %}{% endblock %}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="static/bootstrap.min.js"></script>
<script>
$('.nav li a').on("click", function(e) {
$(".nav li").removeClass("active");
if (!$(this).parent().hasClass("active")) {
$(this).parent().addClass("active");
}
/*e.preventDefault();*/
});
</script>
当用户点击一个链接,将它们发送到一个新页面,并没有设置你的主动类在新页面的HTML。 – dirn 2015-03-30 22:22:13
我发布的代码中的最后一个脚本实际上改变了这个类。正如我所说,我可以说,它改变了一秒的类,但然后它们都变回默认,就像它加载layout.html模板两次 – bmeredith 2015-03-30 22:27:59
您的JavaScript运行在原始页面上。一旦浏览器加载新页面,状态就会被遗忘。 – dirn 2015-03-30 22:42:22