jquery - 将 Twitter 的 Bootstrap 2.x "active"类添加到 div 内的 "li"元素

标签 jquery twitter-bootstrap addclass

我正在使用 Bootstrap 创建导航菜单。使用 jQuery load() 将导航加载到 asdf2.html 页面中。当用户转到 asdf2.html 时,我很难将“active”类添加到子链接。

当用户加载asdf2.html时,如何将事件类添加到子链接?我相信 div 引起了问题,但我不太确定为什么......

asdf2.html(将 sub-nav.html 页面加载到子导航 div 并将事件类添加到链接):

<div id="sub-nav"></div>

<script>
jQuery(function(){
    $('#sub-nav').load('sub-nav.html', function() {
         $('#sub-nav a:contains("Link")').parent().addClass('active'); //WORKS
         $('#sub-nav a:contains("subLink")').parent().addClass('active'); //DOESN'T WORK
    })
});
</script>

sub-nav.html(div中的li不添加Class):

<div class="well sidebar-nav span3" style="margin-left:0px;">
      <ul class="nav nav-list">
           <li><a href="asdf.html">Link</a></li>
           <div>
               <li><a href="asdf2.html">subLink</a></li>
           </div>
      </ul>
</div>

最佳答案

问题:

bootstrap.css 中导航列表内 a 标签样式的 CSS 规则具有以下类型的选择器:

// Hover/focus
.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
    ...
}

// Active nav items
.navbar .nav > .active > a,
.navbar .nav > .active > a:hover,
.navbar .nav > .active > a:focus {
    ...
}

查看代码here .

在标记中添加额外的 div 确实会破坏标记 - .active 节点不是 .nav 的直接子节点不再有节点了。

我还没有浏览过 javscript 代码,但我想这些事件也使用相同类型的选择器进行绑定(bind)。

建议:

如果您想遵循 Bootstrap 框架结构,请删除 div 节点。

或者也许将 class="nav" 添加到您的 div - 请务必彻底测试结果...

问题:

为什么首先需要这个 div

关于jquery - 将 Twitter 的 Bootstrap 2.x "active"类添加到 div 内的 "li"元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989103/

相关文章:

javascript - 如何从 $ ('p' 的集合中删除所有类?

jQuery:动态添加属于另一个元素的类

javascript - 将条件应用于 jQuery.when() 延迟函数

javascript - 使用 matchmedia 时缩短代码

jQuery .offset(position) 无法正常工作

javascript - 导航跟随滚动

javascript - 淡出后淡入音频

html - 如何在图像旁边对齐多行文本而不将其换行?

javascript - TinyMCE 放在 Bootstrap 模态对话框时不能全屏

jquery - 将Class添加到特定元素