Jquery 引导-更改navbar中的活动类
我知道这个问题被问了上百万次,但还有一个缺口我无法填补 我有一个非常基本的导航栏结构,如下所示:Jquery 引导-更改navbar中的活动类,jquery,html,css,twitter-bootstrap,Jquery,Html,Css,Twitter Bootstrap,我知道这个问题被问了上百万次,但还有一个缺口我无法填补 我有一个非常基本的导航栏结构,如下所示: <ul class="nav navbar-nav navbar-right"> <li class="nav-item"> <%= link_to "Entry", entry_path, class: 'nav-link', 'data-turbolinks' => false %> </li
<ul class="nav navbar-nav navbar-right">
<li class="nav-item">
<%= link_to "Entry", entry_path, class: 'nav-link', 'data-turbolinks' => false %>
</li>
<li class="nav-item">
<%= link_to "Entry 2", entry2_path, class: 'nav-link', 'data-turbolinks' => false %>
</li>
<li class="nav-item localization-links">
<% unless I18n.locale == :en %>
<div class="unactive-localization-button">
<%= link_to "EN", locale: :en %>
</div>
<% else %>
<a class: 'nav-link'>EN</a>
<% end %>
</li>
<li class="nav-item localization-links">
<% unless I18n.locale == :fr %>
<%= link_to "FR", locale: :fr %>
<% else %>
<a class: 'nav-link'>FR</a>
<% end %>
</li>
</ul>
$(".nav li").click(function() {
if ($(".nav li").hasClass("active")) {
$(this).removeClass("active");
} else {
$(this).addClass("active");
}
});
它适用于除我的本地化链接以外的所有链接(“条目1”、“条目2”等)。我只想给这些链接提供一个活动类,但不知怎么的,到目前为止我读到的东西对我来说都不管用(我用它来检查我哪里出错了)。当我更改本地化时,我并没有控制台错误,我显然在浏览器的编辑器中手动添加了“active”类,但并没有使用我的代码。
你知道为什么吗?提前感谢您的时间,我感谢您的任何评论或回答 我解决了这个问题。这不是一个常见的问题(至少我在谷歌搜索时没有发现),但我会发布我的解决方案,以防有人也面临这样的问题。我的问题是不正确的
,除非声明,我就是这样做的:
<% unless I18n.locale == :en %>
<li class="nav-item">
<%= link_to "EN", locale: :en %>
</li>
<% else %>
<li class="nav-item active">
<a class='nav-link'>EN</a>
</li>
<% end %>
<% unless I18n.locale == :fr %>
<li class="nav-item">
<%= link_to "FR", locale: :fr %>
</li>
<% else %>
<li class="nav-item active">
<a class='nav-link'>FR</a>
</li>
<% end %>
EN
FR
因此,如果用户选择了区域设置,我就显式地传递active
类。我注意到的第一件事是if($(.nav-li”).removeClass(“active”){
应该是if($(.nav-li”).hasClass(“active”){
removeClass()
永远不会返回“true”是的,这是一个打字错误,当然是hasClass,不是removeClass,我编辑了这个片段