Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 引导-更改navbar中的活动类_Jquery_Html_Css_Twitter Bootstrap - Fatal编程技术网

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,我编辑了这个片段