javascript - Safari ReferenceError:找不到变量 - 发生了什么
问题描述
当我单击“ReferenceError:找不到变量:togglePopUp”按钮时,Safari 会抛出错误
该功能在所有其他浏览器(包括 IE)中都能正常工作
你有什么建议吗?
var formPopUp = document.querySelector('.form-popup');
var modalOpen = false;
var togglePopUp = function togglePopUp() {
modalOpen = !modalOpen;
formPopUp.classList.toggle('active');
if (modalOpen) {
document.querySelector('body').style = "overflow : hidden;";
} else {
document.querySelector('body').style = "overflow : auto;";
}
};
var close = document.querySelector('.form-popup .close');
close.addEventListener('click', function () {
togglePopUp();
});
window.onclick = function (event) {
if (event.target == formPopUp) {
togglePopUp();
}
};
<button class="btn" onclick="togglePopUp()">Click</button>
解决方案
通过执行声明您的功能
function togglePopUp()
或使用箭头符号
var togglePopUp = () => {...}
推荐阅读
- reporting-services - 通过 Power BI 服务器上的 URL 传递 SSRS 报告的参数
- codenameone - 最小化和关闭代号中的按钮功能更改
- android - 即使使用本地分发,接收 Gradle 连接也会超时
- r - igraph 中的数字 POSIX 对象
- r - 如何基于另一个生成新的数据框?
- xamarin.android - textview xamarin.android中的计时器
- python - 如何通过将光标悬停在热图元素上来显示热图元素的值?
- reactjs - 签名的 apk 在 React-native 中不生成,我该如何解决?
- sql - 您可以使用聚合函数按列连接吗?
- jquery - 饼图比高图中的折线图花费更多的加载时间