Jquery 隐藏所有以前切换的元素

Jquery 隐藏所有以前切换的元素,jquery,Jquery,我有一个侧边栏菜单,可以通过jQuery打开和关闭页面的隐藏部分。该链接会淡出隐藏内容,并向链接添加和删除类。例如html/css <ul> <li><a class="linkOne" href="#">Link One</a></li> <li><a class="linkTwo" href="#">Link Two</a></li> </ul> <div clas

我有一个侧边栏菜单,可以通过jQuery打开和关闭页面的隐藏部分。该链接会淡出隐藏内容,并向链接添加和删除类。例如html/css

<ul>
<li><a class="linkOne" href="#">Link One</a></li>
<li><a class="linkTwo" href="#">Link Two</a></li>
</ul>

<div class="linkOneBox">Stuff</div>
<div class="linkTwoBox">Stuff</div>

<style type="text/css">
.linkOneBox,.linkTwoBox {display:none}
.current {background: #fff}
</style>

无论如何。。我的问题是,既然我正在使用切换,那么让所有其他保持打开状态的切换重置为关闭的最佳方式是什么?我怎样才能使单击一个新链接同时隐藏所有以前打开的窗口并删除.current

我首先对HTML进行一些更改:

<ul id="menu">
    <li><a href="#b1">Link One</a></li>
    <li><a href="#b2">Link Two</a></li>
</ul>

<div class="box" id="b2">Stuff</div>
<div class="box" id="b1">Stuff</div>

有一点重叠,因此您可能只想在淡入新框之前隐藏打开的框。

我首先对HTML进行一些更改:

<ul id="menu">
    <li><a href="#b1">Link One</a></li>
    <li><a href="#b2">Link Two</a></li>
</ul>

<div class="box" id="b2">Stuff</div>
<div class="box" id="b1">Stuff</div>

有一点重叠,因此您可能只想在淡入新框之前隐藏打开的框。

我同意Mark的观点,但使用:

$(this).addClass('current');

因为toggleClass首先检查类是否存在。

我同意Mark,但使用:

$(this).addClass('current');

因为toggleClass首先检查类是否存在。

是!谢谢。。这比我走的那条路要有效得多。关于你对重叠的评论。。。你不是这样做的吗$('.box').hide();为了防止最初的闪烁,我尝试将它们隐藏在css中,因为它们在加载脚本时是可见的,然后我将为关闭js的用户提供其他内容。现在它确实失去了切换功能,因为每个链接总是打开它。。我只是为每个窗口添加了一个关闭按钮,但如果有任何关于如何保持切换功能的想法,我很乐意听到:)是的,我所做的只是最初隐藏框-如果您更改了$('box:visible')。fadeToggle();到$('box:visible').hide()之后,我认为这样看起来会更好。另外,如果您将初始$('.box').hide()移动到.box div之后的一个脚本块中,那么应该避免闪烁,并且仍然为非JS人员保留打开状态。是的!谢谢。。这比我走的那条路要有效得多。关于你对重叠的评论。。。你不是这样做的吗$('.box').hide();为了防止最初的闪烁,我尝试将它们隐藏在css中,因为它们在加载脚本时是可见的,然后我将为关闭js的用户提供其他内容。现在它确实失去了切换功能,因为每个链接总是打开它。。我只是为每个窗口添加了一个关闭按钮,但如果有任何关于如何保持切换功能的想法,我很乐意听到:)是的,我所做的只是最初隐藏框-如果您更改了$('box:visible')。fadeToggle();到$('box:visible').hide()之后,我认为这样看起来会更好。另外,如果您将初始$('.box').hide()移动到.box div之后的一个脚本块中,那么这应该可以避免闪烁,并且仍然为非JS人员保留打开状态。谢谢fredrik。。。你是对的,它基本上使切换无点提示,很好的捕获-我编辑了我的答案以考虑你的建议。谢谢弗雷德里克。。。你是对的,它基本上使切换无点提示,很好的捕获-我编辑了我的答案,以考虑到你的建议。