Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 单击外部时隐藏切换的div(与本机jQuery的切换兼容)_Javascript_Jquery - Fatal编程技术网

Javascript 单击外部时隐藏切换的div(与本机jQuery的切换兼容)

Javascript 单击外部时隐藏切换的div(与本机jQuery的切换兼容),javascript,jquery,Javascript,Jquery,我有一些元素使用原生Jquery的切换。这些元素是使用带有内联脚本的按钮来切换的,onclick=“$('#elementname')。toggle();return false”切换每个元素,所有这些都使用相同的jQuery切换。当用户单击Out时如何隐藏div使用兼容的jQuery切换代码删除这些div?您可以在#navmenu中使用onblur=“Toggle(false)”,但这仅在#navmenu是表单元素(如input或textarea)时才有效 另一种方法是检测文档上的单击以隐藏导

我有一些元素使用原生Jquery的切换。这些元素是使用带有内联脚本的按钮来切换的,
onclick=“$('#elementname')。toggle();return false”
切换每个元素,所有这些都使用相同的jQuery切换。当用户单击Out时如何隐藏div使用兼容的jQuery切换代码删除这些div?

您可以在#navmenu中使用onblur=“Toggle(false)”,但这仅在#navmenu是表单元素(如input或textarea)时才有效

另一种方法是检测文档上的单击以隐藏导航菜单,并防止单击导航菜单。您还需要防止所有点击导航菜单和按钮的行为传播。问题是按钮onclick中的return false不起作用,这意味着文档单击将触发。您需要一些带有标志的逻辑来防止这种情况,但是删除内联脚本更容易,这是推荐的。然后你会得到这样的结果:


测试123

$(文档)。在(“单击”)上,函数(e){ 如果(e.target.id=='navmenu')返回false;//禁止单击#navmenu $('#navmenu').toggle(false);//hide() }); $(“按钮”)。在(“单击”,函数()上){ $(“#导航菜单”).toggle(); 返回false; });
顺便说一句,如果您有多个按钮和#导航菜单,您需要使用类而不是id。请尝试以下方法:

$(document).click(function(event){
    if(event.target.classList.contains('.target-div') === false){
    $('.target-div').removeClass('remove toggled class');
    }
});

大喊大叫会使你一事无成。@斜视这里只是为了拼写和否决一个重要的问题会使你一事无成。这不是真的,因为你纠正了大喊大叫。不过你对你的问题没有任何投票权,所以不确定你指的是什么。祝你的“重要”问题好运。如果你的问题不清楚,你觉得怎么样。您应该指定需要单击的位置,并包含HTML代码。
$(document).click(function(event){
    if(event.target.classList.contains('.target-div') === false){
    $('.target-div').removeClass('remove toggled class');
    }
});