我必須對項目使用vanilla JavaScript。我有幾個功能,其中一個是打開菜單的按鈕。它在存在目標標識的頁面上工作,但在id不存在的頁面上導致錯誤。在那些功能找不到id的頁面上,我收到一個「Can not read property'addEventListener'null」的錯誤,而我的其他功能都沒有工作。無法讀取null的屬性'addEventListener'
下面是打開菜單的按鈕的代碼。
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,但不能確定。
你能顯示html代碼嗎?它似乎找不到id爲'overlayBtn'的元素 – BlaShadow 2014-09-29 19:14:41
在那些功能找不到id的頁面上,我收到「Can not read property'addEventListener'null」錯誤,而我的其他功能都沒有工作。 我認爲這個問題的答案非常多。你找不到元素,所以你不能添加一個事件監聽器... – Etai 2014-09-29 19:16:16
它可以簡單地發生,如果你已經在你的html中使用'class'而不是'id',並且你調用'getElementById'在您的腳本中。 – Deke 2016-06-25 19:50:38