首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一次设置一个元素为“active”

一次设置一个元素为“active”
EN

Stack Overflow用户
提问于 2011-06-18 16:07:39
回答 2查看 5.2K关注 0票数 1

对我来说,解释这个问题的最简单方法是查看我的代码at jsfiddle

每个Div只有一个链接,一旦单击该链接就会将Div设置为active +,并在其中显示一个隐藏的Div。因此,当您再次单击该链接时,它会切换活动样式并隐藏隐藏的Div。这就是我想要的方式,但我也希望这样,如果我单击另一个链接,而前一个div仍然设置为active,它只会将该Div (刚刚单击)设置为active,并切换到前一个div。

我希望这是有意义的,如果你需要更多的信息,请让我知道。

此外,如果您看到更好的方法来编写这一小段代码,我希望得到建议。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-18 16:22:43

如果你的标记保证了所有相关的div都是同级的,那么这是可行的(并且不使用任何ID或属性):

代码语言:javascript
运行
复制
$('.href').click(function (ev){
    ev.preventDefault();

    // find enclosing div
    var p = $(this).closest('div');

    // make this one active, and make others inactive
    $(p).addClass('active')
        .siblings('.active').removeClass('active').find('.hidden').hide();

   // and change the hidden div
    $(p).find('.hidden').toggle();
})

http://jsfiddle.net/alnitak/y8kys/

中间一行完成了繁重的工作-它确保外部div具有正确的类,它的同级都没有正确的类,并且每个同级中的隐藏元素也被隐藏。

我在http://jsfiddle.net/alnitak/ZfhbU/上放了另一个版本,当包含的div不是同级的时候,它就能工作。

票数 2
EN

Stack Overflow用户

发布于 2011-06-18 16:16:15

在显示隐藏的div之前,您可以检查所有其他隐藏的div元素,必要时将其隐藏,并在父div上切换样式

代码语言:javascript
运行
复制
$('.hidden').each(function() {
    if($(this).is(":visible")) {
       $(this).hide("slow");
       $(this).parent().toggleClass("active");
    }
});

有关示例,请参阅updated fiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6394715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档