我在js代码的顶部创建了一个布尔变量,它在整个代码中都能完美工作,当它的值在使用它的所有函数/块中发生变化时,它会全局变化。但在一个特定的块中,我必须再次声明并初始化它,然后才能在该块中访问它。这是一个“document.addEventListener”块
我正在做一个响应式设计,所以我为不同的宽度大小创建了不同的事件监听器。
事情是这样发生的:
let isVisible = false
let query = window.matchMedia("(max-width: 600px)");
document.addEventListener("DOMContentLoaded", () => {
if (query.matches) {
button.addEventListener("click", () => {
if (!isVisible) {
searchBar.style.display = "block";
isVisible = true;
} else if (isVisible && searchBar.value) {
get_movie(searchBar.value);
} else {
searchBar.style.display = "none";
isVisible = false;
}
});
}
});
这个
button.addEventListener
根本不跑,因为
isVisible
条件尚未满足,这是因为全局变量未被访问。
只有当我声明时,它才会开始运行
可见
再次在里面
document.addEventListener
块。