Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery中的可切换菜单。不知道如何保存状态_Jquery_Html - Fatal编程技术网

JQuery中的可切换菜单。不知道如何保存状态

JQuery中的可切换菜单。不知道如何保存状态,jquery,html,Jquery,Html,我的菜单是这样设置的: <div id='top-navigation'> <ul> <li><a class='top-nav-button-unclicked' href='#'>SUBJECT</a></li> <li><a class='top-nav-button-unclicked' href='#'>TOPIC</a></li> &

我的菜单是这样设置的:

<div id='top-navigation'>
    <ul>
    <li><a class='top-nav-button-unclicked' href='#'>SUBJECT</a></li>
    <li><a class='top-nav-button-unclicked' href='#'>TOPIC</a></li>
    <li><a class='top-nav-button-unclicked' href='#'>PRESENTER</a></li>
    </ul>
    </div>
    <div id='menu'>
    </div>
问题是,当我单击第一个菜单项“主题”时,菜单就会出现,当我单击“主题”时,我希望菜单保持打开状态(从技术上讲,当我添加ajax时,菜单结果会改变)


基本上,我不知道如何保持哪个按钮调用菜单的状态。最好的方法是什么

听起来您正在使用
.toggle()
,但您并不希望每次都切换。如果是这种情况,那么您应该只计算是否希望它可见,并设置特定状态,而不是使用
.toggle()
。您还可以将布尔值传递给
.toggle()
,以确定它是显示还是隐藏。

使用闭包(或全局属性-ick!)并存储标识上次单击的链接的内容(例如
$(this).text()
,甚至
this
,这将是链接元素本身)然后在检查单击的当前链接和单击的最后一个链接的基础上更改行为。这很酷,但可能有一种替代方法可以使用.toggle()?检查此小提琴。。希望能有帮助。。
$('#menu').hide();

$(".top-nav-button-unclicked, .top-nav-button-clicked").click(function(){
    if ($(this).hasClass('top-nav-button-clicked')) {
        $(this).removeClass().addClass("top-nav-button-unclicked");
    } else {
        $(this).removeClass().addClass("top-nav-button-clicked");
    }
    $('#menu').toggle();
});