在JQuery不工作的情况下在导航栏中设置活动类

2024-09-30 02:36:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的导航栏中有以下元素。你知道吗

<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链接后,我需要将类“active”添加到clicked元素中,并将类“active”删除到其他元素中。 我的jQuery如下:

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

现在,单击后不久,单击的元素会正确地更改颜色,使其变为活动的,而另一个元素则变为非活动的。但是一旦页面结束加载,情况就会回到以前的状态。你知道吗

我读过很多类似问题的答案,但没有人帮我解决问题。。你知道吗

请注意,我是jQuery&js的新手。你知道吗

谢谢你的帮助。你知道吗

编辑:我正在使用Django Python

网址.py:

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

以及

视图.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'))

Tags: divid元素requestitjquerylanguageclass
2条回答

简单。。。 jquery代码将是:

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

希望这有帮助。。。。你知道吗

我在没有jQuery的情况下解决了这个问题,只需阅读当前的Django会话语言,并使用此信息手动将类活动设置为正确的链接。你知道吗

 {% 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%}

不太优雅,但简单有效:-)

谢谢大家的支持!你知道吗

相关问题 更多 >

    热门问题