Javascript Hammer.js 2处于仅侦听模式
当我指定hammer在窗口上捕获时,存在一个问题,因为没有ownerDocumentJavascript Hammer.js 2处于仅侦听模式,javascript,hammer.js,Javascript,Hammer.js,当我指定hammer在窗口上捕获时,存在一个问题,因为没有ownerDocument function getWindowForElement(element) { var doc = element.ownerDocument; return (doc.defaultView || doc.parentWindow); } 我这样做的原因是因为我只想听听页面上发生的所有hammer.js事件。如果我使用hammer.js 1中推荐的document.body,页面的默认操作将被阻止。在ham
function getWindowForElement(element) {
var doc = element.ownerDocument;
return (doc.defaultView || doc.parentWindow);
}
我这样做的原因是因为我只想听听页面上发生的所有hammer.js事件。如果我使用hammer.js 1中推荐的document.body,页面的默认操作将被阻止。在hammer.js 1中,情况并非如此。我可以做类似的事情
hammertimeArray.push(new Hammer(document.body, gestureOptions));
或
hammer 1和hammer 2之间发生了什么变化,我无法再在不影响页面行为的情况下收听事件。在hammer 2中有没有办法做到这一点?目前我所做的是:
hammertime = new Hammer.Manager(window);
hammertime.add(new Hammer.Tap({event: 'tap'}));
hammertime.add(new Hammer.Pan({direction: Hammer.DIRECTION_ALL}));
hammertime.add(new Hammer.Press());
hammertime.add(new Hammer.Pinch({enable: true}));
hammertime.on(eventsToEnable, function hammertimeOnCallback(eventData) {
recordEvent(eventData);
});
hammertimeArray.push(hammertime);
如果像我在那里做的那样创建以窗口作为参数的管理器,我会遇到documentOwner问题。如果使用document.body创建管理器,则页面上的默认操作将被阻止。我可以通过设置window.documentOwner=document
来破解解决方案
hammertime = new Hammer.Manager(window);
hammertime.add(new Hammer.Tap({event: 'tap'}));
hammertime.add(new Hammer.Pan({direction: Hammer.DIRECTION_ALL}));
hammertime.add(new Hammer.Press());
hammertime.add(new Hammer.Pinch({enable: true}));
hammertime.on(eventsToEnable, function hammertimeOnCallback(eventData) {
recordEvent(eventData);
});
hammertimeArray.push(hammertime);