JavaScript - window.matchMedia 未触发的事件侦听器

Ale*_*mel 6 html javascript css media-queries

我已经尝试了无数解决方案来解决这个问题,但没有一个解决了我的问题。我非常简单地有一个导航栏,当在移动浏览器上时,它会消失并被一个按钮取代,其功能是显示和隐藏导航栏。

现在,我希望我的侦听器在窗口缩小时显示按钮并隐藏导航栏。当窗口展开时,按钮应隐藏,导航栏应显示。该按钮正常工作,因为媒体查询不会影响它。我的侦听器似乎根本不运行,除非重新加载页面。

我的脚本包含在 PHP 标头内,该标头包含在我所有页面的开头。这是我所得到的:

媒体查询侦听器(包含在 header.php 代码中)

// ... navbar code, opening script tag, yadda yadda
function mediaQueryCheck(inputQuery) {
    var content = document.getElementById("navigation");
    if (inputQuery.matches) {
        // it matches
        content.style.display = "none";
    } else {
        // it does not match
        content.style.display = "block";
    }
}
var mobileQuery = window.matchMedia("screen and (max-width: 638px)");
mediaQueryCheck(mobileQuery);
mobileQuery.addEventListener(mediaQueryCheck);
// closing script tag
Run Code Online (Sandbox Code Playgroud)

该元素#navigation是一个包含导航栏的 div 元素。如有必要,我将提供任何其他相关代码。

Ale*_*mel 3

使用addListener而不是addEventListener解决问题。

  • 由于已弃用,您必须使用带有**change**事件的“addEventListener”而不是“addListener”。 (3认同)