我必须在一个项目中使用纯JavaScript语言。其中有几个函数,其中一个是打开菜单的按钮。这个功能在目标id存在的页面上可以正常工作,但在没有此id的页面上会出错。在这些页面上,该函数无法找到id,我会收到“Cannot read property 'addEventListener' of null”错误,并且我的其他函数也无法正常工作。
以下是打开菜单按钮的代码:
function swapper() {
toggleClass(document.getElementById('overlay'), 'open');
}
var el = document.getElementById('overlayBtn');
el.addEventListener('click', swapper, false);
var text = document.getElementById('overlayBtn');
text.onclick = function(){
this.innerHTML = (this.innerHTML === "Menu") ? "Close" : "Menu";
return false;
};
我应该如何处理这个问题?我可能需要将这段代码全部放入另一个函数中,或者使用if/else语句,以便它仅在特定页面上搜索id,但不确定具体方法。
class
而不是id
,并且在脚本中调用getElementById
,那么这种情况很容易发生。 - DekeaddEventListener可能为空(null)
。将<script src="..."></script>
标签移到<body/>
标签后解决了这个问题。 - Malakai