Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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 Bootsrap v4.1:单击div外部时关闭折叠菜单_Javascript_Jquery_Html_Css_Bootstrap 4 - Fatal编程技术网

Javascript Bootsrap v4.1:单击div外部时关闭折叠菜单

Javascript Bootsrap v4.1:单击div外部时关闭折叠菜单,javascript,jquery,html,css,bootstrap-4,Javascript,Jquery,Html,Css,Bootstrap 4,我正在尝试为即插即用Mega菜单开发代码。我发现使用折叠方法似乎对此非常有效 我仍然在琢磨如何在菜单外单击时关闭折叠的项目。我是Javascript的初学者,所以使用jquery有点挑战性 编辑:最近我遇到了一段更好的代码,它不是Javascript和JQuery的混合体。我尝试应用它,但仍然无法确定如何正确地定位.collapse()方法 下面的小部件还有一些其他问题,不确定它是否与我的代码相关,因为我以前在错误显示信息时遇到过问题。试试这个 JQuery(已编辑): $(document).

我正在尝试为即插即用
Mega菜单
开发代码。我发现使用折叠方法似乎对此非常有效

我仍然在琢磨如何在菜单外单击时关闭折叠的项目。我是Javascript的初学者,所以使用jquery有点挑战性

编辑:最近我遇到了一段更好的代码,它不是Javascript和JQuery的混合体。我尝试应用它,但仍然无法确定如何正确地定位
.collapse()
方法

下面的小部件还有一些其他问题,不确定它是否与我的代码相关,因为我以前在错误显示信息时遇到过问题。试试这个

JQuery(已编辑):

$(document).mouseup(function(e) {
  var container = $("#mega-menu");

  // if the target of the click isn't the container nor a descendant of the container
  if (!container.is(e.target) && container.has(e.target).length === 0) {
    //alert("hi");
    container.collapse();
    //$('.collapse').collapse()
  }

代码:
。下拉菜单{
位置:绝对位置;
最高:100%;
左:0;
右:0;
宽度:100%;
显示:-ms flexbox;
显示器:flex;
-ms-flex方向:列;
弯曲方向:立柱;
最小宽度:0;
单词包装:打断单词;
背景色:#fff;
背景剪辑:边框框;
边框:1px实心rgba(0,0,0,125);
填充:1rem;
边界半径:0;
}
.mega菜单切换{
光标:指针;
}
.mega菜单切换::之后{
显示:内联块;
宽度:0;
身高:0;
左侧边缘:.255em;
垂直对齐:.255em;
内容:“;
边框顶部:.3em实心;
右边框:.3em实心透明;
边界底部:0;
左边框:.3em实心透明;
}
@介质(最大宽度:767px){
.下拉菜单{
位置:静态;
}
}

  • 其他无链接内容。

进一步调查后,我认为我使用的折叠方法不正确。使用现有JQuery并添加
collapse('hide')
似乎可以完成以下工作:

$(document).mouseup(function(e) 
{
    var container = $("#mega-menu");

    // if the target of the click isn't the container nor a descendant of the container
    if (!container.is(e.target) && container.has(e.target).length === 0) 
    {
        container.collapse('hide');
    }
});  

经过进一步调查,我认为我使用的折叠方法不正确。使用现有JQuery并添加
collapse('hide')
似乎可以完成以下工作:

$(document).mouseup(function(e) 
{
    var container = $("#mega-menu");

    // if the target of the click isn't the container nor a descendant of the container
    if (!container.is(e.target) && container.has(e.target).length === 0) 
    {
        container.collapse('hide');
    }
});  

为什么保留旧文本?只需将其移除并保留新的issue@TemaniAfif,因为我认为与collapse类相关的问题实际上是由Javascript引起的。因此,我认为了解其中一个问题可能会让某人知道什么是错误的,或者另一方面,他们可能只需要代码,而不是绒毛。我可以删除删除线标题,这更适合那些在编辑之前看到它的人,他们需要建设性的批评,当你有一个向下投票按钮。。我看到这个网站上的提问仍然没有改变。将对文章进行编辑以更好地显示当前问题。为什么保留旧文本?只需将其移除并保留新的issue@TemaniAfif,因为我认为与collapse类相关的问题实际上是由Javascript引起的。因此,我认为了解其中一个问题可能会让某人知道什么是错误的,或者另一方面,他们可能只需要代码,而不是绒毛。我可以删除删除线标题,这更适合那些在编辑之前看到它的人,他们需要建设性的批评,当你有一个向下投票按钮。。我看到这个网站上的提问仍然没有改变。将对帖子进行编辑,以更好地显示当前版本。这很好