var Hammer = require('./module/hammer');
|
|
|
|
/**
|
|
* Register a touch event, taking place before a gesture
|
|
* @param {Hammer} hammer A hammer instance
|
|
* @param {function} callback Callback, called as callback(event)
|
|
*/
|
|
exports.onTouch = function (hammer, callback) {
|
|
callback.inputHandler = function (event) {
|
|
if (event.isFirst && !isTouching) {
|
|
callback(event);
|
|
|
|
isTouching = true;
|
|
setTimeout(function () {
|
|
isTouching = false;
|
|
}, 0);
|
|
}
|
|
};
|
|
|
|
hammer.on('hammer.input', callback.inputHandler);
|
|
};
|
|
|
|
// isTouching is true while a touch action is being emitted
|
|
// this is a hack to prevent `touch` from being fired twice
|
|
var isTouching = false;
|
|
|
|
/**
|
|
* Register a release event, taking place after a gesture
|
|
* @param {Hammer} hammer A hammer instance
|
|
* @param {function} callback Callback, called as callback(event)
|
|
*/
|
|
exports.onRelease = function (hammer, callback) {
|
|
callback.inputHandler = function (event) {
|
|
if (event.isFinal && !isReleasing) {
|
|
callback(event);
|
|
|
|
isReleasing = true;
|
|
setTimeout(function () {
|
|
isReleasing = false;
|
|
}, 0);
|
|
}
|
|
};
|
|
|
|
return hammer.on('hammer.input', callback.inputHandler);
|
|
};
|
|
|
|
|
|
// isReleasing is true while a release action is being emitted
|
|
// this is a hack to prevent `release` from being fired twice
|
|
var isReleasing = false;
|
|
|
|
|
|
/**
|
|
* Unregister a touch event, taking place before a gesture
|
|
* @param {Hammer} hammer A hammer instance
|
|
* @param {function} callback Callback, called as callback(event)
|
|
*/
|
|
exports.offTouch = function (hammer, callback) {
|
|
hammer.off('hammer.input', callback.inputHandler);
|
|
};
|
|
|
|
/**
|
|
* Unregister a release event, taking place before a gesture
|
|
* @param {Hammer} hammer A hammer instance
|
|
* @param {function} callback Callback, called as callback(event)
|
|
*/
|
|
exports.offRelease = exports.offTouch;
|