【发布时间】:2013-06-07 16:42:44
【问题描述】:
我正在使用 Bootstrap 创建导航菜单。使用 jQuery load() 将导航加载到 asdf2.html 页面中。当用户转到 asdf2.html 时,我很难将“活动”类添加到子链接。
当用户加载 asdf2.html 时,如何将活动类添加到子链接?我相信 div 会导致问题,但我不确定为什么......
asdf2.html(将 sub-nav.html 页面加载到 sub-nav 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没有addClass):
<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>
【问题讨论】:
-
我只是用 .html() 而不是 .load() 尝试了这个,它似乎工作得很好:jsfiddle.net/TF7GZ你有一个不能工作的活生生的例子吗?跨度>
-
.load 对我来说很好。它正在为不起作用的子链接添加 cssAdd。当用户导航到 subLink 时,jquery 应该添加一个类(突出显示用户所在的当前页面)。它不起作用,因为它在一个 Div 中。我正在尝试让 addclass 工作。
-
所以,据我了解,你有三个页面:主页面,asdf.html,asdf2.html。另外,您还有一个通用的 sub-hav.html 加载到所有文件中。您希望“a[href=asdf.html]”在 asdf.html 上处于活动状态,而“a[href=asdf2.html]”在 asdf2.html 上处于活动状态?
-
正确。当用户转到 asdf2.html 时,导航栏中的“子链接”应突出显示(通过添加“活动”类)。它适用于“链接”,但不适用于“子链接”。我相信我的 $('#sub-nav a:contains("subLink")').parent().addClass('active'); 的语法不正确
-
语法似乎正确。还有一个问题:asdf.html 和 asdf2.html 是否具有与示例中相同的 HTML 和 JavaScript 代码?如果没有 - 请您也分享一下。
标签: jquery twitter-bootstrap addclass