Javascript If语句和toggleClass
说到Javascript,我有点不知所措。基本上我有一个简单的ul与5李的附加Javascript If语句和toggleClass,javascript,jquery,html,css,Javascript,Jquery,Html,Css,说到Javascript,我有点不知所措。基本上我有一个简单的ul与5李的附加 ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; border: 1px solid #e7e7e7; background-color: rgba(255,255,255,.5); } li { float: left; } li a { display: bl
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
border: 1px solid #e7e7e7;
background-color: rgba(255,255,255,.5);
}
li {
float: left;
}
li a {
display: block;
color: #000000;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-family: 'Open Sans', sans-serif;
}
li a:hover:not(.active) {
background-color: rgba(221,221,221,.5);
}
li a:hover {
background-color:rgba(221,221,221,.5);
}
.active {
background-color: rgba(22,47,127,.25);
}
<ul class="topnav" id="ulclass">
<li><a href="javascript:void(0);" onclick= "addNavLayer(Points);">Display Points</a></li>
<li><a href="javascript:void(0);" onclick="addNavLayer(States);">Display States</a></li>
<li><a href="javascript:void(0);" onclick="addNavLayer(Counties);">Display Counties</a></li></li>
</ul>
$("ul a").click(function(){
//this works fine at just toggling the boxes
$(this).toggleClass("active");
});
ul{
列表样式类型:无;
保证金:0;
填充:0;
溢出:隐藏;
边框:1px实心#e7e7e7;
背景色:rgba(255255,5);
}
李{
浮动:左;
}
李阿{
显示:块;
颜色:#000000;
文本对齐:居中;
填充:14px 16px;
文字装饰:无;
字体系列:“开放式Sans”,无衬线;
}
li a:悬停:未(.active){
背景色:rgba(22122122121.5);
}
李娜:停下来{
背景色:rgba(22122122121.5);
}
.主动{
背景色:rgba(22,47127,25);
}
$(“ul a”)。单击(函数(){
//这在切换框时效果很好
$(此).toggleClass(“活动”);
});
这里是棘手的部分…一个if语句
如果li项目2处于活动状态(州图层),则取消激活li项目3(县图层)
否则li 3处于活动状态(县层面),然后取消激活li项目2(州层面)
我知道,在jQuery中,有可能我只是在引用列表中的单个项目,然后切换活动状态时遇到问题。我想这就是您要找的
$("ul a").click(function(){
//first remove all instances of the class
$("ul a").removeClass("active");
//then set the active
$(this).addClass("active");
});
如果希望第一个锚点独立切换,可以向其他锚点添加一个类,并使用类似的方法
$("ul a").click(function(){
//remove class from anchors that have class 'should-toggle'
$("ul a.should-toggle").removeClass("active");
//add class to selected
$(this).toggleClass("active");
});
您正在查找
jQuery
的.index()
。这可以得到任何li
元素的索引。请记住,这是基于0
的
您只需设置var elementIndex=$('li').index($(this.parent())代码>
$(文档)。在('click','li a',function()上{
console.log(
$('li').index($(this.parent())
);
});代码>
- 清单项目1
- 清单项目2
- 清单项目3
- 清单项目4
- 清单项目5
您应该共享所有相关代码。这包括addNavLayer
和任何点
、状态
和国家
是什么意思。停用li 2是什么意思$(this).hasClass('className'),然后切换。。。(add/removeClass)仔细检查后,我发现您希望将第一个选项与切换选项分开,请尝试此选项,是的,这就是我正在做的。试着把第一个分开。非常感谢你的帮助!