Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript If语句和toggleClass_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript If语句和toggleClass

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

说到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: 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)仔细检查后,我发现您希望将第一个选项与切换选项分开,请尝试此选项,是的,这就是我正在做的。试着把第一个分开。非常感谢你的帮助!