在导航栏中设置活动类,JQuery不起作用

时间:2018-01-31 10:50:43

标签: javascript jquery python html

我的导航栏中有以下元素。

<div class="nav-languages">
      <a class="navbar-brand active" id="langStyle" href="/language/it"> ITA </a>
      <a class="navbar-brand" id="langStyle" href="/language/en"> ENG </a>
</div>

点击a链接后,我需要添加课程&#34; active&#34;到被点击的元素并删除类&#34;活动&#34;对其他人。 我的jQuery如下:

  $('.nav-languages a').click(function() {
      $('.nav-languages a').removeClass('active');
      $(this).addClass('active');
  });

现在,点击后不久,点击的元素正确地将颜色变为活动状态,而另一个变为非活动状态。但是一旦页面结束加载,情况就会回到之前的状态。

我已经阅读了很多类似问题的答案,但没有人帮助我解决我的问题..

请注意我在jQuery&amp;中完全是新手。 JS。

感谢您提供任何帮助。

编辑:我正在使用Django-Python

urls.py:

urlpatterns = [
    url(r'^$', webprojects_home, name="homepage"),
    url(r'^language/(?P<language>[a-z\-]+)/$', language),
    ]

views.py:

### setting language session
def language(request, language='it'):
    response = HttpResponse("setting language to %s" % language)
    response.set_cookie('lang', language)
    request.session['lang'] = language
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

2 个答案:

答案 0 :(得分:0)

我通过简单地阅读当前的Django会话语言解决了没有jQuery的问题,并使用此信息手动将类激活设置为正确的链接。

 {% if session_language == 'it' %}
  <a class="navbar-brand active" href="/language/it"> ITA </a>
  <a class="navbar-brand" href="/language/en"> ENG </a>
  {%else%}
  <a class="navbar-brand" href="/language/it"> ITA </a>
  <a class="navbar-brand active" href="/language/en"> ENG </a>
  {%endif%}

不是很优雅,但简单而有效: - )

谢谢大家的支持!

答案 1 :(得分:-2)

...简单 jquery代码将是:

$('.nav-languages a').click(function(){
    $(this).addClass("active")
    $(this).siblings("a").removeClass("active")
});

希望这会有所帮助......