![](/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.