JavaScript-不会触发具有window.matchMedia的事件侦听器

亚历克斯·鲁梅尔

我已经为这个问题找到了无数的解决方案,但是都没有解决我的问题。我非常简单地拥有一个导航栏,当在移动浏览器中使用时,该导航栏消失并被按钮取代,该按钮的功能是显示和隐藏导航栏。

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

我的脚本包含在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

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

亚历克斯·鲁梅尔

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript 事件侦听器未触发

IE11忽略javascript matchMedia事件侦听器

Vaadin JavaScript卸载事件侦听器未触发

JavaScript - 使用带有 setTimeout 函数的事件侦听器

javascript中的事件侦听器不会触发,除非页面已加载

Window.matchmedia侦听器触发两次

Javascript事件侦听器

使用 JavaScript 的事件委托设置删除事件侦听器的有效方法是什么

Javascript 单击事件侦听器仅触发一次

Javascript-触发函数使用反跳机制时删除事件侦听器

单击标签元素内的文本时,Javascript事件侦听器将触发两次

如何检查是否有附加到元素/文档的JavaScript事件侦听器/处理程序?

如何在 Javascript 中添加带有 HTML 模板文字的事件侦听器?

使用纯JavaScript,是否有简单的方法将事件侦听器附加到类?

使用纯JavaScript,是否有简单的方法将事件侦听器附加到类?

Javascript - 加载类的所有元素时的事件侦听器

尝试获取资源时,带有CLICK事件侦听器的Javascript API FETCH:TypeError:NetworkError

使用javascript手动更改表单/文本区域输入,并确保触发所有事件侦听器

Javascript删除“焦点”事件侦听器

Javascript - classList 事件侦听器的问题

JavaScript事件侦听器内存泄漏

类中的 Javascript 事件侦听器

javascript DOMContentLoaded事件侦听器

Javascript事件侦听器和数组

如何简化 javascript 事件侦听器?

事件侦听器 onkeydown 问题 Javascript

Javascript 事件侦听器单击多个

如何在javascript中为所有事件添加事件侦听器而不单独列出它们?

jQuery事件侦听器多次触发