首页 > 解决方案 > 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>

标签: javascriptfunctiondebuggingsafarionclick

解决方案


通过执行声明您的功能

function togglePopUp()

或使用箭头符号

var togglePopUp = () => {...}

推荐阅读