javascript - 如何处理 “main.js:11 Uncaught TypeError: Cannot read property ' addEventListener的“null”这样的错误?

标签 javascript error-handling addeventlistener

是否有任何错误或任何变量导致空值错误

    // Select DOM Items
const menuBtn = document.querySelector('.menu-btn');
const menu = document.querySelector('.menu');
const menuNav = document.querySelector('.menu-nav');
const menuBranding = document.querySelector('.menu-branding');
const navItems = document.querySelectorAll('.nav-item');

// Set Initial State Of Menu
let showMenu = false;

menuBtn.addEventListener("click", toggleMenu);

function toggleMenu() {
    if (!showMenu) {
        menuBtn.classList.add('close');
        menu.classList.add('show');
        menuNav.classList.add('show');
        menuBranding.classList.add('show');
        navItems.forEach(item => item.classList.add('show'));

        // Set Menu State
        showMenu = true;
    } else {
        menuBtn.classList.remove('close');
        menu.classList.remove('show');
        menuNav.classList.remove('show');
        menuBranding.classList.remove('show');
        navItems.forEach(item => item.classList.remove('show'));

        // Set Menu State
        showMenu = false;
    }
}

这里menuBtn.addEventLister显示此错误:

main.js:11 Uncaught TypeError: Cannot read property 'addEventListener' of null at main.js:11



请说明如何解决

最佳答案

querySelector返回null,因为您的DOM中没有包含.menu-btn类的元素

您可以通过在添加事件之前测试变量menuBtn来捕获错误

menuBtn && menuBtn.addEventListener("click", toggleMenu);

关于javascript - 如何处理 “main.js:11 Uncaught TypeError: Cannot read property ' addEventListener的“null”这样的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55761722/

相关文章:

node.js - Elifecycle 错误是什么意思?

actionscript-3 - addEventListener(ErrorEvent.ERROR,handler)是否可以处理actionscript3中的所有类型的错误事件?

javascript - 对象 #<Server> 没有方法 'use' [Express+ShareJS]

android - RelativeLayout中不能存在循环依赖项吗?

javascript - 单击 div 更改 url 位置

java - 构造函数可以抛出运行时异常吗?

javascript - Keydown事件监听器不监听

javascript - Eloquent JavaScript 中的removeEventListener 示例

javascript - Backbone.js 模型事件未触发

javascript - 搜索引擎机器人 - 爬虫 - 蜘蛛 - 等是否有 javascript?