Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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下拉菜单。slideUp()不工作_Jquery_Drop Down Menu - Fatal编程技术网

jQuery下拉菜单。slideUp()不工作

jQuery下拉菜单。slideUp()不工作,jquery,drop-down-menu,Jquery,Drop Down Menu,我有两个带有jQuery下拉菜单的div。当我单击文档上的任意位置时,活动菜单会向上滑动,但当我使用jQuery下拉菜单单击另一个div时,以前打开的菜单仍保持打开状态 HTML(示例) 演示: 当我单击另一个下拉菜单时,如何隐藏以前打开的菜单?类似的内容 $('.DropDownMenu li').click(function() { var $that = $(this); // Slides Up, all menu items, and removes class ac

我有两个带有jQuery下拉菜单的div。当我单击文档上的任意位置时,活动菜单会向上滑动,但当我使用jQuery下拉菜单单击另一个div时,以前打开的菜单仍保持打开状态

HTML(示例)

演示:

当我单击另一个下拉菜单时,如何隐藏以前打开的菜单?

类似的内容

$('.DropDownMenu li').click(function() {
    var $that = $(this);

    // Slides Up, all menu items, and removes class active on Complete.
    $('.DropDown .MenuItem li').slideUp(10, function(){
         $that.removeClass('active');
    });

    // Slides Down, clicked menu item, and adds class "active" on Complete.
    $that.slideDown(10, function(){
         $that.addClass('active');
    });
});

我认为这很简单

试试这个

$(function () {
    $(".menu-button .action-options").hide();
    $(".menu-button ul a").click(function (e) {
      $(".menu-button .action-options").hide();
     $(this).parents('ul').find('.action-options').toggle();
        e.stopPropagation();
    });

    $(document).click(function (e) {

        $(".menu-button .action-options").hide();
        return true;
    });
});
根据OP要求编辑代码 根据上面提到的要求,尝试这个新代码

$('.menu-button .action-options').hide();
$('.menu-button .actions').click(function (e) {
    if ($(this).parents('ul').find('.action-options').is(':visible')) {

        $(this).parents('ul').find('.action-options').slideUp(10);
        $('.actions').removeClass('active');
    } else {
        $('.menu-button .action-options').slideUp(10);
        $(this).parents('ul').find('.action-options').slideDown(10);
        $('.actions').addClass('active');
    }
    e.stopPropagation();
});
$(document).click(function (e) {

    $(".menu-button .action-options").hide();
    return true;
});

希望这有帮助,谢谢

你能发布相关的HTML,并在中创建一个演示吗?这是一个全新的代码。我不能修改我的代码。有没有一种方法可以说,如果单击了另一个按钮,则只隐藏所有其他打开的菜单,而不是您刚才单击的菜单?例如,这里的条件在文档点击时执行。点击(function(){if($('.menu button.js ul')。是(':visible'))…。我试图玩一个代码,但无法使它正常工作。这里我尝试的是
$('.menu button.js.actions')。点击(function(){if($(这个,'ul action options'))。兄弟姐妹()。是(':visible')){$('.menu button.js ul.action options',this.slideUp(10);$('.actions').removeClass('active');});
@dimit您的代码不干净。这会降低性能。当可以用simple完成时,您正在使用大量对象。大量使用jquery对象将降低性能performance@dmit根据您的需要更改了代码检查上面答案中的编辑。希望这对您有所帮助谢谢您的额外帮助。我很感激。这不是真的请在下一个答案中看到我的两条评论,可能会根据这些信息提出一些建议吗?
$(function () {
    $(".menu-button .action-options").hide();
    $(".menu-button ul a").click(function (e) {
      $(".menu-button .action-options").hide();
     $(this).parents('ul').find('.action-options').toggle();
        e.stopPropagation();
    });

    $(document).click(function (e) {

        $(".menu-button .action-options").hide();
        return true;
    });
});
$('.menu-button .action-options').hide();
$('.menu-button .actions').click(function (e) {
    if ($(this).parents('ul').find('.action-options').is(':visible')) {

        $(this).parents('ul').find('.action-options').slideUp(10);
        $('.actions').removeClass('active');
    } else {
        $('.menu-button .action-options').slideUp(10);
        $(this).parents('ul').find('.action-options').slideDown(10);
        $('.actions').addClass('active');
    }
    e.stopPropagation();
});
$(document).click(function (e) {

    $(".menu-button .action-options").hide();
    return true;
});