Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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中修复此问题?没有jQuery_Javascript - Fatal编程技术网

切换脚本问题如何在纯JavaScript中修复此问题?没有jQuery

切换脚本问题如何在纯JavaScript中修复此问题?没有jQuery,javascript,Javascript,我制作了这个脚本,我设计的方式是,当你点击div之外的任何地方,div应该消失,但我注意到,当你点击div时,它自己也消失了。如何防止这种情况发生?我只想通过单击div外侧的任何位置使div消失来实现这一点 而不是单击div使其消失。所以我正试图阻止这种情况。我该怎么做?我仍然希望按钮上的切换效果 document.addEventListener('DOMContentLoaded',function(){ var bx=document.getElementsByTagName('butt

我制作了这个脚本,我设计的方式是,当你点击div之外的任何地方,div应该消失,但我注意到,当你点击div时,它自己也消失了。如何防止这种情况发生?我只想通过单击div外侧的任何位置使div消失来实现这一点 而不是单击div使其消失。所以我正试图阻止这种情况。我该怎么做?我仍然希望按钮上的切换效果

document.addEventListener('DOMContentLoaded',function(){
var bx=document.getElementsByTagName('button')[0];
bx.addEventListener('click',fx);
函数fx(){
document.getElementById(“myDropdown”).classList.toggle(“show”);
}
window.onclick=函数(事件){
如果(!event.target.matches('.dropbtn')){
var dropdowns=document.getElementsByClassName(“下拉内容”);
var i;
对于(i=0;i
。下拉式内容{
显示:无;
}
.表演{
显示:块;
}
下拉列表
你好

您的
窗口。onclick
处理程序仅检查您是否单击了按钮,而不是在
窗口内。在您的状况中包括
检查:

if (!event.target.matches('.dropbtn') && !event.target.closest('.dropdown-content')) {

如果元素不匹配并且不是与其参数匹配的元素的后代,则返回
null

非常感谢,现在它可以正常工作了。我希望它可以正常工作:)