簡體   English   中英

我應該怎樣包裝document.getElementById以便在找不到ID時不會引發TypeError?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM