![](/img/trans.png)
[英]I can't use jQuery library, and I am getting TypeError: document.getElementById(…) is null when 'translating' to pure javascript
[英]What do I wrap a document.getElementById so as not to throw a TypeError when ID can't be found?
我正在使用Hammer.js庫( http://hammerjs.github.io/ )在原始javascript環境中啟用觸摸手勢。 包含庫之后,我將在畫廊頁面上進行通話。 如果在頁面上找不到ID幻燈片,則呼叫失敗。 產生的TypeError還會阻止執行該站點的其他js。 我真的很陌生,但是從閱讀開始,我認為我需要將此代碼包裝在測試中,這樣如果id slide不存在,它將不會運行。 知道如何執行此操作將幫助我解決其他ID和庫的其他問題。
所以在Hammer.js代碼之后,我有自己的代碼:
var slide = document.getElementById('slide');
var mc = new Hammer(slide);
mc.on("swipeleft", function(ev) {
var url = document.querySelector('a.next').getAttribute('href');
if (url) {
window.location = url;
}
});
mc.on("swiperight", function(ev) {
var url = document.querySelector('a.prev').getAttribute('href');
if (url) {
window.location = url;
}
});
如果頁面不包含id幻燈片,如何防止執行此代碼? (當我說它不包含它時,我的意思是它不會在該頁面上存在,不是說DOM還沒有准備好。)
謝謝。
只需測試一下:
var slide = document.getElementById('slide');
if( slide ){
// .. your code
}
如果slide
虛假,則結束周圍的函數執行:
var slide = document.getElementById('slide');
if (!slide) return;
//... The rest of your code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.