当我在窗口上指定锤子捕获时会出现问题,因为没有ownerDocument。
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));
或
hammertimeArray.push(new Hammer(window, gestureOptions));
在1号和2号之间发生了什么变化,我不再能够在不影响页面行为的情况下收听事件。有没有办法在锤子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
来解决问题。