我有一个这样的div:
<div class="navigation fixed-top">
<a href="#home" class="active">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
当我点击About
时,它会自动添加class="active"
。例如,当href="#home"
d包含class="active"
时,我想将<div class="navigation navigation-fixed-top">
更改为<div class="navigation navigation-fixed-bottom">
。
我正在尝试这个:
if($('a[href="#home"]').hasClass('active'))
{ $(".navigation").toggleClass("fixed-bottom fixed-top"); }
输出看起来像这样:class="navigation navigation-fixed-top fixed-bottom fixed-top"
似乎只是添加了这些类。
答案 0 :(得分:1)
您可以使用多个类toggleClass
轻松切换导航类:
$(".navigation").toggleClass("fixed-bottom fixed-top");
假设div只有其中一个类,此代码将删除它并添加另一个。再次运行它将恢复原始状态,依此类推。
答案 1 :(得分:1)
怎么样?
var isActive = $('a[href="#home"]').hasClass('active');
$(".navigation")
.toggleClass("navigation-fixed-bottom", isActive)
.toggleClass("navigation-fixed-top", !isActive);
答案 2 :(得分:0)
我在JSBin中修复了一些东西:
http://jsbin.com/hawugefi/2/edit
$(function(){
if($('a[href="#home"]').is('.active')) {
$(".navigation").toggleClass("fixed-bottom fixed-top");
}
console.log($(".navigation").attr('class'))
});
要在两个班级之间切换,您可以使用$.toggle('class1 class2')
,如@Jon所述。