我尝试在不使用函数之后从兄弟元素中删除添加的类,但没有成功。
我使用Arun P Johny的几行脚本(找到here和小提琴here)并添加了一个用于切换,添加和删除类的代码行,脚本执行以下操作:
以下是代码:
$(document).ready(function () {
var $targets = $(".div");
$(".link").click(function () {
var $target = $($(this).data("target")).fadeToggle("slow");
$targets.not($target).hide();
$(this).toggleClass("selected").removeClass("not-selected").siblings().addClass("not-selected").removeClass("selected");
});
});
我无法使其工作的是当再次单击.link(和.div隐藏)时,我无法从所有其他(兄弟).links中删除.not-selected类。当没有.div可见时,我希望链接没有类.not-selected,就像它们在第一个.link被点击之前没有它一样。
要想象:想象.links是背景颜色为灰色的标签。当我点击每个标签时,它变为黄色(并打开一些内容),而其他变为蓝色。但是当我再次点击黄色标签并隐藏内容时,我希望所有标签再次变为灰色(失去蓝色)。
如果我将addClass更改为toggleClass:
(...).siblings().toggleClass("not-selected").(...)
它完全没有做到这一点。如果我在相同的链接/选项卡上单击两次,它可以工作,但当我单击一个又一个选项卡时,它仍然会删除.not-selected类,但它不应该。我试过了
if ($(".div").not(":visible)) {$(".link").removeClass("not-selected");}
但即使使用.lenght === 0也不起作用。即使选择了一个链接/标签,它也会整个时间删除所有未选择的类。
帮助? : - )