我有这个:
<div class="mycontainer active">
<a href="#" class="mylink">link</a>
</div>
<div class="mycontainer">
<a href="#" class="mylink">link</a>
</div>
我希望&#34;移动&#34;当我点击其中的链接时,活动类到第二个容器。
我尝试使用以下jQuery:
$('.mycontainer .mylink').on('click', function(){
$(".active").removeClass('active');
$(this).parent().find(".mycontainer").addClass('active');
});
但这不起作用,实际上我不太了解Javascript / jQuery,我做错了什么? 感谢任何形式的帮助。
答案 0 :(得分:7)
你可以改用:
$('.mycontainer .mylink').on('click', function () {
$(this).closest('.mycontainer').addClass('active').siblings('.mycontainer.active').removeClass('active');
});
答案 1 :(得分:1)
尝试:
$(this).parent().addClass('active');
或:
$(this).parent(".mycontainer").addClass('active');
代替。因为$(this).parent()
已经引用了您正在寻找的元素,然后使用find()
,您试图在其中找到内容为mycontainer
的元素,但这些元素将无效。
答案 2 :(得分:1)
该行:
$(this).parent().find(".mycontainer")
正在寻找mycontainer div,然后在其中寻找.mycontainer,当你实际上已经在那里时。
请改为尝试:
$('.mycontainer .mylink').on('click', function(){
$(".active").removeClass('active');
$(this).parent().addClass('active');
});
答案 3 :(得分:1)
您想要在点击的链接上添加活动类...
示例:强> http://jsfiddle.net/LCaNP/
$('.mycontainer .mylink').on('click', function(){
$('.mycontainer').removeClass('active');
$(this).parent().addClass('active');
});
答案 4 :(得分:0)
$('.myContainer').toggleClass('active')
应该这样做。
所以,代码是 -
$('.mycontainer .mylink').on('click', function(){
$('.myContainer').toggleClass('active');
});
Herr&#39; JSFiddle