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

Javascript 在JQuery不工作的情况下在导航栏中设置活动类,javascript,jquery,python,html,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> 现在,单击后不久,

我的导航栏中有以下元素

<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>
现在,单击后不久,单击的元素会正确地更改颜色,使其变为活动,而另一个元素则变为非活动。但一旦页面结束加载,情况就会回到以前的状态

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

请注意,我是jQuery&js中的新手

谢谢你能提供的任何帮助

编辑:我正在使用Django Python

url.py:

urlpatterns = [
    url(r'^$', webprojects_home, name="homepage"),
    url(r'^language/(?P<language>[a-z\-]+)/$', language),
    ]
### 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'))
简单的。。。 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%}
{%if session_language=='it'%}
{%else%}
{%endif%}
不太雅致,但简单有效:-)


谢谢大家的支持

每次加载页面时,jQuery都会加载,因此基本上
。单击
功能将永远不会运行。你必须在html部分应用一些逻辑来检查哪个链接应该有
活动的
类。当你改变页面时,你的导航栏会回到默认状态,所以你需要每个页面设置哪个元素是活动的。如果您没有更改页面,那么您会看到您正在查找的更改,但是如果没有实际加载您单击的页面,则没有多大用处。@Mr.Developer您可以从其他位置访问该站点,并且活动链接可能不正确,或者当您单击“上一步/下一步”时,它不会更改。很抱歉,这是一个非常脆弱的建议。不过,页面中已经硬编码了活动类,因此无论您进入哪个页面,它都将始终是具有该类名的同一链接。我认为您只需要重新思考这个问题,就可以找到一个简单的解决方案。祝你好运:)问题中的代码是正确的-预期结果是错误的。请注意,当有人单击锚定标记(链接)时,它会更改页面,因此使用jQuery所做的所有DOM更改都会立即丢失。
 {% 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%}