Javascript Hammer.js TypeError:元素为null,使用内部$(文档)。就绪:

Javascript Hammer.js TypeError:元素为null,使用内部$(文档)。就绪:,javascript,jquery,hammer.js,Javascript,Jquery,Hammer.js,我试图解决这个问题:在这样一个街区内使用 $(document).ready(function() { ... } ) 用于初始化Hammer.js的函数,如下所示: var area = document.querySelector('#keyboard'); var hammertime = new Hammer(area); hammertime.on("pan", { /* options */ }, function(eventu) { co

我试图解决这个问题:在这样一个街区内使用

$(document).ready(function() { ... } )
用于初始化Hammer.js的函数,如下所示:

    var area = document.querySelector('#keyboard');
    var hammertime = new Hammer(area);

    hammertime.on("pan", { /* options */ }, function(eventu) {
        console.log("pan"); 
    }); 
    hammertime.on("tap", { /* options */ }, function(eventu) {
        console.log("tap!"); 
    }); 
刚调用时,将生成:

TypeError:元素为空

它在hammer.js代码中链接到此函数:

- element.addEventListener(type, handler,
> false);
你应该如何正确地称呼它?我真的陷入了困境,jQuery ready似乎不是正确的方式。。。我还尝试在块中移动代码,如:

window.addEventListener('load', function() { 
//here thecode above
}, false);
但我也犯了同样的错误

[编辑]在他们用来处理DIVs元素的所有Hammer.js示例中,我尝试在li(st)元素上执行此操作,这是否与我的问题有关

即:

或(同样的问题):

有什么想法吗?谢谢:-)

在原生JS中,不需要分别将
#
添加到ID或类中。只是名字


我想如果你删除了#,元素就会被找到。

我不知道你是否已经解决了,反正我今天也遇到了同样的问题,并发现了接下来的问题。 看起来,除了Hammer.js网站上的声明之外,在使用默认语句创建新的Hammer实例时:

var hammertime = new Hammer(area)
它没有默认的输入事件识别器。 因此,您可以尝试通过以下方式添加所需的内容:

var hammertime = new Hammer.Manager(area, {
          recognizers: [
            [Hammer.Pan, {enable: true}],
            [Hammer.Tap, {enable: true}]
          ]
        });
这对我来说已经解决了
您可以在Hammer.js网站上找到更多选项和详细信息,特别是:



谢谢,我试过了,但没有成功,而且在官方文件中()他们说要放。和#用于引用CSS选择器。我为问题添加了一些细节,再次感谢!
var area = document.querySelector('#first');
var area = document.querySelector('#keyboard');
var hammertime = new Hammer(area)
var hammertime = new Hammer.Manager(area, {
          recognizers: [
            [Hammer.Pan, {enable: true}],
            [Hammer.Tap, {enable: true}]
          ]
        });