在我的 asp.net mvc 应用程序中,我有垂直菜单
菜单一
- 子菜单项 1
- 子菜单项 2
菜单二
- 子菜单项 1
- 子菜单项 2
这个菜单使用了jquery的排列效果,初始设置为
MENU ONE
MENU TWO
点击菜单一或菜单二将打开菜单项。从我的 Controller ,我发送到应该在特定页面上展开哪个菜单的 View ,这很好。如果菜单已经展开,我正在寻找禁用 Accordion 动画的解决方案。
例如:用户导航到菜单二页面, Controller 发送将解包菜单二元素的标志。用户现在选择打开子菜单项 2 并且不应应用 Accordion 效果。如何关闭 Accordion 效果?
这是代码
$(document).ready(function () {
$.easing.def = "easeOutBounce";
var menus = $('div.menu ul li.menu-title'),
current_submenu = null;
menus.next().hide();
menus.each(function (i) {
var dropdown = $(this).next(),
title = $('a.title', this);
title.click(function (e) {
if (current_submenu !== null && current_submenu !== dropdown) {
current_submenu.slideUp('slow');
}
current_submenu = dropdown;
dropdown.stop(false, true).slideToggle('slow');
e.preventDefault();
});
if (i == @ViewBag.OpenSubmenu)
title.click();
});
});
此 @ViewBag.OpenSubmenu
是整数,它指定在这种情况下应展开 0 或 1 的菜单。
最佳答案
好的,我没有直接使用你的代码,但我相信我有这个 FIDDLE 中的功能.
您可以通过单击标签来控制它,也可以通过调用将打开任何一个标签的函数来控制它。
$('.title').click(function(){
$(this).siblings( 'div' ).toggle( "slide" );
});
opensesame(3);
function opensesame (divnum)
{
$(' .holder:nth-child('+ divnum +') ').children( 'div:not( :nth-child(1) )' ).toggle( 'slide' );
}
也许它会给你一些想法。
关于javascript - 在这种特定情况下没有 Accordion 效果的 Accordion 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22043962/