Я играю с Flask и Bootstrap. У меня есть моя настройка навигации в качестве навигационных вкладок, и я пытаюсь установить активный класс на активную вкладку. Он работает в течение секунды, когда ссылка сначала нажата, а затем сразу возвращается к состоянию по умолчанию. Я немного растерялся здесь, и любое объяснение относительно того, что/почему это происходит, было бы весьма полезно.Bootstrap class.active function with Flask
Вот мой 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
Последний скрипт в написанном мной коде действительно меняет класс. Как я уже сказал, я могу, что он меняет класс на долю секунды, но потом все возвращается к умолчанию почти так же, как при загрузке шаблона layout.html дважды – bmeredith
Ваш JavaScript работает на исходной странице. Как только браузер загружает новую страницу, состояние забывается. – dirn