Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Javascript 在这种特殊情况下,没有手风琴效果的手风琴菜单_Javascript_Jquery_Css - Fatal编程技术网

Javascript 在这种特殊情况下,没有手风琴效果的手风琴菜单

Javascript 在这种特殊情况下,没有手风琴效果的手风琴菜单,javascript,jquery,css,Javascript,Jquery,Css,在我的asp.net mvc应用程序中,我有垂直菜单 菜单一 子菜单项1 子菜单项2 菜单二 子菜单项1 子菜单项2 此菜单使用jquery手风琴效果,最初设置为 MENU ONE MENU TWO 单击菜单一或菜单二将打开菜单项。我从我的控制器发送到视图,在特定的页面上应该打开哪个菜单,这很好。我正在寻找解决方案,以禁用手风琴动画,如果菜单已经展开 例如:用户被导航到菜单的两个页面,控制器发送将打开菜单两项的标志。用户现在选择打开子菜单item2,不应应用手风琴效果。如何禁用此手风琴

在我的asp.net mvc应用程序中,我有垂直菜单

菜单一

  • 子菜单项1
  • 子菜单项2
菜单二

  • 子菜单项1
  • 子菜单项2
此菜单使用jquery手风琴效果,最初设置为

MENU ONE
MENU TWO
单击菜单一或菜单二将打开菜单项。我从我的控制器发送到视图,在特定的页面上应该打开哪个菜单,这很好。我正在寻找解决方案,以禁用手风琴动画,如果菜单已经展开

例如:用户被导航到菜单的两个页面,控制器发送将打开菜单两项的标志。用户现在选择打开子菜单item2,不应应用手风琴效果。如何禁用此手风琴效果

这是密码

$(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打开。

好的,我没有直接使用你的代码,但我相信我有这个功能

您可以通过单击标签来控制它,也可以通过调用将打开任何一个标签的函数来控制它

$('.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' );
}    

也许它会给你一些想法。

一把小提琴会很好。好的,谢谢你的时间。记住你的代码,这个opensesame函数怎么能打开菜单却没有任何效果呢?效果应该出现在三个标签上。这是正确的。如果你看小提琴,只有第三个子菜单是打开的。如果将数字更改为2,则会打开第二个子菜单。我也一样。您可以编写一个类似的函数,当您满足某些条件“如果我的第一个菜单打开,我不想做任何事情”时,您将向h函数传递一个“0”。“如果我的第一个菜单关闭,我将打开第二个菜单”,您将向函数传递一个“2”。它允许您在任何“如果”条件下打开或关闭任何菜单。在关闭任何操作方面,只需禁用菜单上的“单击”即可。这里有一个小提琴,您可以在其中取消激活或“解除绑定”,甚至可以单击任何元素-。