addClass()在jQuery的if子句中未按预期工作
addClass() not working as expected in if clause in jQuery
我对jQuery很陌生,有以下问题。因此,我希望jQuery在用户单击li
元素时侦听,如果该元素已经具有active
类,则它应该从函数返回。如果一个元素没有active
的类,那么它应该添加一个类。所以,我想要的是在点击该元素时添加类,但一次只有一个元素可以具有active
的类。但现在,我的代码正在将active
类添加到我单击的每个元素中。下面是代码:
<div class="container-fluid">
<div class="col-sm-2">
<ul class="nav nav-pills nav-stacked">
<h3>Lists</h3>
<hr class="divider">
<li><a href="#"><span class="glyphicon glyphicon-briefcase"></span> Work</a></li>
<li><a href="#"><span class="glyphicon glyphicon-plane"></span> Travel</a></li>
<li><a href="#"><span class="glyphicon glyphicon-book"></span> School</a></li>
</ul>
</div>
</div>
</div>
<script>
(function () {
$('.nav').children('li').on('click', function () {
$this = $(this);
if ( $this.hasClass('active') ) {
return 0;
} else {
$this.addClass('active');
}
});
})();
</script>
试试这个
$(function(){
$('.nav li').click(function () {
$('.nav li').removeClass("active");
$(this).addClass("active");
});
});
您可以这样做,例如:
(function () {
$('.nav').on('click', 'li', function () {
$(this).toggleClass('active')
.siblings('li').removeClass('active');
});
})();
事件处理程序中的this
仅指触发事件的DOM元素(在本例中指被单击的li)。如果你在回调函数中记录this
,你会发现它只引用了一个li元素(点击):
(function () {
$('.nav').children('li').on('click', function () {
console.log(this); //logs <li class="active"> </li>
//other code
})();
这样试试吧-
$('.nav').children('li').on('click', function () {
$('.nav').children('li').removeClass('active');
$(this).addClass('active');
});
基本上,我们添加类并从所有同级中删除类。
(function ()
{
$('.nav').on('click', 'li', function()
{
$(this).addClass('active')
.siblings('li')
.removeClass('active');
});
})();
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- if 子句在 JavaScript 中限定工作流
- else-if子句未按预期工作
- 角度 ng-if 子句不能双向工作
- addClass()在jQuery的if子句中未按预期工作
- Javascript if子句不能正常工作
- 为什么Array不.有些工作在Mongo的$where子句中