【发布时间】:2012-01-18 01:20:32
【问题描述】:
我有几个类似的链接会触发不同的导航 div 出现。我试图在 JQuery 中找到一种方法来确定单击了哪些链接,然后触发适当的打开/关闭功能。 html是:
<a href="" id="nav1">1</a>
<a href="" id="nav2">2</a>
<a href="" id="nav3">3</a>
<div id="hidden1">nav links 1</div>
<div id="hidden2">nav links 2</div>
<div id="hidden3">nav links 3</div>
目前我使用分配给每一对的简单切换,但想设置它,以便当有人打开隐藏的 div 然后单击另一个时,第一个将关闭。
已添加... 我很抱歉没有更详细地解释我的目标......导航菜单有三个项目需要在单击链接时进行更改。链接本身将 css 从文本更改为活动的“选项卡”,隐藏的导航在隐藏和显示之间切换,覆盖 div 也在隐藏和显示之间切换。当有人单击链接时,它应该显示覆盖和隐藏的 div 并将链接 css 更改为活动。如果他们再次单击该链接,它应该切换回来。这部分很容易做到。挑战来了(对我来说最不重要)是如果他们打开第一个隐藏然后单击第三个链接,我希望第一个隐藏关闭并将其链接更改为 css 恢复正常,第三个隐藏打开并将其链接更改为活动,但我希望白色保持打开状态(不打开/关闭创建闪烁)。 ...
我认为这可能有效,但不幸的是:
$("#nav1,#nav2,#nav3").click(function(e)
{
//determine nav id ...
var nav_id = $(this).attr('id').match(/\d+/);
});
最终的计划是确定点击的导航链接,然后检查背景覆盖是否可见。如果没有,则打开导航链接配对隐藏的 div 和覆盖。如果是,则检查是否打开了具有相同 nav_id 的隐藏 div,如果是,则关闭所有内容,如果没有,则关闭所有隐藏 div 并打开配对的隐藏 div。
【问题讨论】: