Javascript js在代码笔中工作,但在本地文件中不工作
我正试图通过单击模态外部来关闭模态。它在codepen上的pen中工作正常,但在codepen项目或本地文件中工作不正常。我错过了什么 我的HTML文件中的头代码是:Javascript js在代码笔中工作,但在本地文件中不工作,javascript,html,Javascript,Html,我正试图通过单击模态外部来关闭模态。它在codepen上的pen中工作正常,但在codepen项目或本地文件中工作不正常。我错过了什么 我的HTML文件中的头代码是: <head> <link rel="stylesheet" type="text/css" href="style.css"> <script src="https://ajax.googleapis.com/ajax/li
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
<title></title>
</head>
我还尝试将js直接放在HTML文件的脚本标记中,该文件也没有运行
<script type="text/javascript">
var modal = document.getElementById('id01');
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
var modal=document.getElementById('id01');
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}
以下是完整的代码:在这里似乎也可以,您的代码是正确的。也许你打错了身份证?
var modal=document.getElementById('id01');
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}
这里
这里似乎也行,你把它编对了。也许你打错了身份证?
var modal=document.getElementById('id01');
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}
此处
您应该检查您的
文件位于何处。此文件可能与正在打开的页面不在同一目录中,因此无法加载。在谷歌浏览器中按Ctrl+Shift+I,检查控制台是否有任何错误。检查脚本位置是否与正在打开的页面相关。您应该检查
文件的位置。此文件可能与正在打开的页面不在同一目录中,因此无法加载。在谷歌浏览器中按Ctrl+Shift+I,检查控制台是否有任何错误。检查脚本位置是否与正在打开的页面相关。在正文标记的末尾而不是标题标记之前添加脚本。是否在本地工作?然后检查控制台中是否有错误console显示没有错误,并且更改脚本是在主体中还是在头部中也没有区别。很可能modal
为null
,因为您调用document.getElementById('id01')
,位于HTML文件中实际
元素之前的某个位置,所以当你试图引用它时,它还不存在。你确定你把它放在身体的末端而不是开始?请在onclick
函数中设置一个断点,单步执行代码,并检查modal
和event.target的值以查看发生了什么。事实上,我觉得如果(event.target!==modal)
-另外,如果用户在子元素上单击模态内部的某个位置,该怎么办?将其放在body标记的底部很有效!非常感谢!我不确定如何将此标记为已回答,因为这是一条注释,而不是答案。请在body标记的末尾而不是head标记之前添加脚本。是否在本地工作?然后检查控制台中是否有错误console显示没有错误,并且更改脚本是在主体中还是在头部中也没有区别。很可能modal
为null
,因为您调用document.getElementById('id01')
,位于HTML文件中实际
元素之前的某个位置,所以当你试图引用它时,它还不存在。你确定你把它放在身体的末端而不是开始?请在onclick
函数中设置一个断点,单步执行代码,并检查modal
和event.target的值以查看发生了什么。事实上,我觉得如果(event.target!==modal)
-另外,如果用户在子元素上单击模态内部的某个位置,该怎么办?将其放在body标记的底部很有效!非常感谢!我不确定如何将其标记为已回答,因为这是一条注释,而不是答案。它位于同一目录中,但我也测试了将其放在自己的目录中,并将路径更改为/js/script.js或/js/script.js。没有从控制台获取任何错误。然后您应该开始逐步调试:1)分配简单的事件,如console.write或window.alert,单击事件中的任何单词,您可以在此处检查是否捕捉到单击事件2)然后开始添加代码,步骤很小,如获取、存储和显示数据,然后你会发现你的问题所在。它在同一个目录中,但我也测试了将它放在自己的目录中,并将路径更改为/js/script.js或/js/script.js。没有从控制台获取任何错误。然后您应该开始逐步调试:1)分配简单的事件,如console.write或window.alert,单击事件中的任何单词,您可以在此处检查是否捕捉到单击事件2)然后开始添加代码,步骤很小,如获取、存储和显示数据,然后你会发现你的问题所在。
<script type="text/javascript">
var modal = document.getElementById('id01');
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>