如图使用jquery设计下拉菜单,默认子菜单隐藏,点击父菜单,展开子菜单,子菜单是超链接,怎么设计?

点击子菜单的任何一个链接,子菜单都保持展开状态;请js大侠们给点设计方案,我做的点击子菜单链接后 因为刷新了网页,所有子菜单都又会被隐藏。

页面刷新了,肯定重置了~
两个思路吧:1、用cookie把点击状态记录下来,菜单加载后根据cookie的值展开对应菜单
2、点击事件的连接做到iframe里,点击只改变iframe的src追问

感觉使用cookie 有点麻烦,能不能 通过截取 url 一部分来判断

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-22
$(function(){
$(".sbubar span.cur_1").next(".subMenu").show();
$(".sbubar span").click(function(event){
$(".sbubar>span").removeClass("cur_1");
$(this).toggleClass("cur_1");
var that = $(this).next(".subMenu")
if(that[0]){
that.slideToggle().siblings(".subMenu").slideUp();
//$(".subMenu").prev().addClass("cur_1");
}
else{
$(".subMenu").slideUp();
$(".subMenu").prev().removeClass("cur_1");
}

});
$(".subMenu b.cur_2").next(".subMenu_cont").show();
$(".subMenu b").click(function(event){
$(".subMenu>b").removeClass("cur_2");
$(this).toggleClass("cur_2");
var that = $(this).next(".subMenu_cont")
if(that[0]){
that.slideToggle().siblings(".subMenu_cont").slideUp();
}
else{
$(".subMenu_cont").slideUp();
$(".subMenu_cont").prev().removeClass("cur_2");
};

});
});

这个只是示例,具体的看你标签的命名了追问

这个页面刷新后,应该还是会还原吧?

追答

不会的。我现在页面也是使用这个的

第2个回答  2013-09-22
先给你一个思路吧:
你设计html的时候,就默认将子菜单全部隐藏,监听点击父菜单的事件,当点击的时候将子菜单显示出来,至于子菜单的超链接,你只需要给他加一个<a> 标签就可以了。

ps:如果需要帮忙设计源代码,可以追问。建议自己实现,映象深刻。追问

你说的基本也是我的设计方法,但是子菜单里装的是超链接,一旦点击子菜单的超连接之后,页码肯定会刷新,但刷新之后,当前 装当前连接的 子菜单容器 就会重新 初始化被隐藏,我试着在点击超链后 将当前超链的 子菜单容器 设置成显示,但是前一个页面的点击 并不能设置后一个页面某节点的样式。

这是我的代码,点击任何链接到新页面,dd都会再次被隐藏。

追答

那你可以尝试,这里不用标签
用一个普通的标签,监听点击事件,在js里用ajax去做,这样页面只是局部刷新,就不会出现你现在的问题了

追问

您说的 是不是 像 ueditor . baidu . com / website / document.html 这个,这个我 没能探测出它ajax 请求的的地址呢?不知道它到底是不是用的ajax。

其实这个我也考虑过,只是考虑到mvc的url参数 和 浏览器的 回退按钮失效,也就没去弄这个。


Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答