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