Hammer.js 2只听模式

时间:2015-02-23 23:46:01

标签: javascript hammer.js

当我在窗口上指定锤子捕获时会出现问题,因为没有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来解决问题。

0 个答案:

没有答案