Tôi phải sử dụng JavaScript vani cho một dự án. Tôi có một vài chức năng, một trong số đó là một nút mở menu. Nó hoạt động trên các trang có id mục tiêu, nhưng gây ra lỗi trên các trang mà id không tồn tại. Trên những trang mà hàm không thể tìm thấy id, tôi nhận được lỗi "Không thể đọc thuộc tính" addEventListener 'của null "và không có hàm nào khác của tôi hoạt động.Không thể đọc thuộc tính 'addEventListener' của null
Dưới đây là mã cho nút mở menu.
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;
};
Làm cách nào để giải quyết vấn đề này? Tôi có lẽ cần phải tất cả các mã này bọc trong một chức năng khác hoặc sử dụng một if/else tuyên bố để nó chỉ tìm kiếm id trên các trang cụ thể, nhưng không chắc chắn chính xác.
bạn có thể hiển thị mã html hay không. có vẻ như không thể tìm thấy phần tử có id 'overlayBtn' – BlaShadow
Trên những trang mà hàm không thể tìm thấy id, tôi nhận được lỗi "Không thể đọc thuộc tính" addEventListener 'của null "và không có hàm nào khác của tôi hoạt động. Tôi nghĩ câu trả lời là khá nhiều trong câu hỏi. Bạn không thể tìm thấy phần tử, vì vậy bạn không thể thêm một trình xử lý sự kiện vào nó ... – Etai
Nó có thể đơn giản xảy ra nếu bạn đã sử dụng 'lớp' trong html của bạn thay vì' id' và bạn gọi một 'getElementById' trong tập lệnh của bạn. – Deke