好的,我的导航栏HTML就在这里(我使用的是boostrap Nav)
<header>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation" id="MyNav">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data- toggle="collapse" data-target="#collapse" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#featured"><h1>Wisdom <span class="subhead">Pet Medicine</span></h1></a>
</div>
<div class="collapse navbar-collapse" id="collapse">
<ul class="nav navbar-nav navbar-right" id="collapse">
<li class="active"><a href="#featured">Home</a></li>
<li><a href="#mission">Mission</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#staff">Staff</a></li>
<li><a href="#testimonials">Testimonials</a></li>
</ul>
</div>
</div>
</nav>
</header>
javascript(JQuery)代码就在这里,
$('.navbar-fixed-top').on('activate.bs.scrollspy',function(){
var current= $(this).find('#MyNav li .active a').attr('href');
if(current !== '#featured'){
$('header nav').addClass('inbody');
}
else{
$('header nav').removeClass('inbody');
}
});
现在,问题在于,每当我向下滚动到某个部分时,ACTIVE类都会更改为其他li
标记,因此inbody
类会附加到<nav>
元素,遵循IFCondition
。但是当我向后滚动时,inbody
类没有按照ELSE条件被删除。需要帮助。
答案 0 :(得分:0)
this.fillSelectors('form#view:_id1', {
casper.then(function(){
this.fillSelector('Formname ????', {
'username': 'Hans',
'password': 'Wurst'
}, true);
});
变化:
li.active
要
var current= $(this).find('#MyNav li .active a').attr('href');
^^ // extra space
您的版本会在var current= $(this).find('#MyNav li.active a').attr('href');
内查找具有该类
<li>
内的有效课程
答案 1 :(得分:0)
@charlietfl所说的是正确的。但是,更好的解决方案可能是使用事件目标:
$('.navbar-fixed-top').on('activate.bs.scrollspy',function(ev){
var current = $(ev.target).find('a').attr('href');
...
});
答案 2 :(得分:0)
这行代码存在两个问题:
var current= $(this).find('#MyNav li .active a').attr('href');
您的初始选择$(this)将是您的nav元素。然后使用.find()搜索nav元素的所有后代。 #MyNav不是后代(它是相同的元素)所以find函数不会返回任何内容。
第二个问题是&#34; li .active&#34;它将查找具有作为li元素后代的活动类的元素。但是你想要具有类&#34;活跃&#34;的li元素。为了得到它,不要在它们之间包含空格。
该行应如下所示:
var current= $(this).find('li.active a').attr('href');