我有一个非常简单的问题,实际上这不是问题,这是修复javascript错误,不管怎样,这是代码:
$(document).ready(function() {
$('#accordion a.item').click(function () {
$(this).addClass('selected');
$(this).removeClass('selected');
$('#accordion li').children('ul').slideUp('slow');
$(this).siblings('ul').slideDown('slow');
});
});
和html:
<ul id="accordion">
<li>
<a href="#" class="item">BANKS</a>
<ul>BLA BLA BLA</ul>
</li>
<li>
<a href="#" class="item">PETROL</a>
<ul>BLA BLA BLA</ul>
</li>
</ul>
当我单击其中一个链接时,“selected”类被添加到其中,但当我单击另一个链接时,“selected”类没有被删除,这会是什么错误呢?
感谢大家的帮助!我真的很感激!
发布于 2012-04-03 17:30:25
目前还不清楚您要做什么,但看起来您想要将类添加到单击的元素中,并将其从其所有兄弟元素中删除。您当前的代码向相同的元素添加和删除类,最终什么也不做。
你可能想要像这样的东西
$(document).ready(function() {
$items = $('#accordion a.item'); // all the items
$items.click(function () {
$items.removeClass('selected'); // remove class from everything
$(this).addClass('selected'); // add class to clicked item
$('#accordion li').children('ul').slideUp('slow');
$(this).siblings('ul').slideDown('slow');
});
});
发布于 2012-04-03 17:28:48
先使用ToggeleClass
方法,然后使用adClass/ removeClass
方法。
$("Selector").toggleClass('name of class',true); //apply class
$("Selector").toggleClass('name of class',false); //remove class
发布于 2012-04-03 17:30:34
$(this)
是您单击的链接,而不是所有链接。你需要移除所有链接的类。
$(document).ready(function() {
$('#accordion a.item').click(function () {
$('#accordion a.item').removeClass('selected');
$(this).addClass('selected');
$('#accordion li').children('ul').slideUp('slow');
$(this).siblings('ul').slideDown('slow');
});
});
https://stackoverflow.com/questions/9990514
复制相似问题