Javascript 在jQuery中使用HammerJS
下面我抓起容器,左右滑动我触发了一个点击,这是另一个做一些奇特的动画爵士乐的功能Javascript 在jQuery中使用HammerJS,javascript,jquery,hammer.js,Javascript,Jquery,Hammer.js,下面我抓起容器,左右滑动我触发了一个点击,这是另一个做一些奇特的动画爵士乐的功能 var element = document.getElementsByClassName('container'); var hammertime = new Hammer(element); hammertime.on('swiperight', function(ev) { $('.btn-left').trigger('click'); }); hammertime.on('swipeleft', fu
var element = document.getElementsByClassName('container');
var hammertime = new Hammer(element);
hammertime.on('swiperight', function(ev) {
$('.btn-left').trigger('click');
});
hammertime.on('swipeleft', function(ev) {
$('.btn-right').trigger('click');
});
关于我包含的Hammerjs
库()uncaughttypeerror:a.addEventListener不是一个函数,我一直收到这个错误
我做了一些研究,发现了另一个stackoverflow问题,即我不能通过Hammerjs
传递jQuery,因此我应该使用jQuery-Hammer。我看了一下回购协议,近两年都没有更新过
我需要使用jQuery Hammer()扩展,还是可以不需要它就通过jQuery。问题是new Hammer()
需要一个元素,而getElementsByClassName
返回一个NodeList
如果你把它改成
var hammertime = new Hammer(element[0])
这应该按预期工作,因为您将传递与.container
匹配的第一个元素。如果要将其绑定到具有.container
类的所有元素,则需要自己循环它们。我很少对任何东西使用jQuery,所以我通常包括这个小助手函数,用于循环遍历节点列表
function doToAll(elems, fn){
var len = elems.length
while(--len > -1){
fn(elems[len])
}
}
在这种情况下,您可以这样使用它:
doToAll(document.getElementsByClassName('container'), function(element){
var hammertime = new Hammer(element)
//add in the rest of your functionality
})
或者,如果您只需要一个.container
,可以使用document.querySelector('.container')
获取它。