javascript - 如何一次选择一个元素?

标签 javascript jquery html css

在默认状态下,我希望选择“ALL”。单击另一个元素将更改所有其他类,以便“this”具有该类,而其他则没有。我的问题是为什么不能重新选择“ALL”?

jsFiddle:http://jsfiddle.net/u5g9vLkx/

HTML:

<ul class="nav2">
    <li><a href="#" class="orange2">ALL</a></li>
    <li><a href="#" class="orange">PERSONAL</a></li>
    <li><a href="#" class="orange">PHOTOGRAPHY</a></li>
    <li><a href="#" class="orange">WORK</a></li>
</ul>

CSS:

body{
    background: #000000;
}
.nav2{
    float: none;
    list-style-type:none;
    overflow: hidden;
    clear: both;
    text-align: left;
    display: inline-flex;
}

.nav2 li{
    clear: both;
    overflow: hidden;
    margin-left: 10px;  
}

.orange{
    opacity: .5;
    color: #FF9000;
    text-decoration: none;
    display: block;
    text-align: center;
    padding: 8px;
    border: 1px solid #000; 
    -webkit-transition: all 0.2s ease-out;
    -moz-transition: all 0.2s ease-out;
    -ms-transition: all 0.2s ease-out;
    -o-transition: all 0.2s ease-out;
    transition: all 0.2s ease-out;
}

.orange:hover{
    opacity: 1;
    color:#000000;
    background: #FF9000;
}

.orange2{
    color: #FF9000;
    text-decoration: none;
    display: block;
    text-align: center;
    padding: 8px;
    border: 1px solid #FF9000; 
    -webkit-transition: all 0.2s ease-out;
    -moz-transition: all 0.2s ease-out;
    -ms-transition: all 0.2s ease-out;
    -o-transition: all 0.2s ease-out;
    transition: all 0.2s ease-out;
}

.orange2:hover{
    color:#000000;
    background: #FF9000;
}

Javascript:

$('a.orange').click(function(){
$('a.orange2').addClass('orange');
$('a.orange').removeClass('orange2');
$(this).removeClass('orange');
$(this).addClass('orange2');
});

最佳答案

在您的 Javascript 代码中,您仅将 onClick 监听器应用于 a.orange(a 类为 orange 的元素)

$('a.orange').click(function(){ ... });

因为“ALL”菜单条目没有orange,而是orange2作为它的类,所以它不受那个影响。

您可以通过在选择器中包含 a.orange2 来解决此问题:

$('a.orange, a.orange2').click(function(){ ... });

关于javascript - 如何一次选择一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595058/

相关文章:

javascript - ComboBox 无法在 ExtJS 的 EditorGridPanel 中工作

javascript - Yeoman 不会搭建 Backbone 应用程序

javascript - 如何在 svg 交互式 map 上设置城市边界?

javascript - for循环将点击功能添加到jQuery中的多个输入字段未按预期工作

javascript - 美元用什么。当方法由变量的值给出时

javascript - 如何在用户滚动到它们之前加载 onScroll 背景图像?

javascript - 从创建文本字段的下拉列表中选择 'OTHERS' 选项 Ruby on Rails - 4.2

javascript - 侧边栏不工作不知道为什么

php - 如何获取不同表的数据?

javascript - 使用 javascript 单击时隐藏和显示相同的元素