Implemented InteractionMapper.off

This commit is contained in:
2019-08-13 12:46:24 +02:00
parent e7bda6af17
commit 6e9ec938fc
85 changed files with 709 additions and 152 deletions
+40 -1
View File
@@ -2750,6 +2750,10 @@
return this
}
if (typeof Hammer.__hammers === 'undefined') {
Hammer.__hammers = new Map();
}
// convert to array
types = Array.isArray(types) ? types : types.split(/\s/);
if (elements instanceof NodeList || elements instanceof HTMLCollection) {
@@ -2792,6 +2796,14 @@
hammer.on(type, event => {
cb(event);
});
if (Hammer.__hammers.has(elements[j])) {
const elementHammers = Hammer.__hammers.get(elements[j]);
elementHammers.push(hammer);
Hammer.__hammers.set(elements[j], elementHammers);
} else {
Hammer.__hammers.set(elements[j], [hammer]);
}
}
} else {
for (let j = 0; j < elements.length; j++) {
@@ -2801,8 +2813,35 @@
}
}
}
}
return this
/**
*
*
* @static
* @param {HTMLElement|HTMLElement[]} elements - An HTML element or an array of HTML elements.
*/
static off(elements) {
if (typeof Hammer === 'undefined') {
console.error('Hammer.js not found!');
return this
}
// convert to array
if (elements instanceof NodeList || elements instanceof HTMLCollection) {
elements = Array.from(elements);
}
elements = Array.isArray(elements) ? elements : [elements];
for (let i = 0; i < elements.length; i++) {
const element = elements[i];
if (Hammer.__hammers.has(element)) {
const elementHammers = Hammer.__hammers.get(element);
elementHammers.forEach(it => it.destroy());
Hammer.__hammers.delete(element);
}
}
}
}
+40 -1
View File
@@ -6374,6 +6374,10 @@
return this
}
if (typeof Hammer.__hammers === 'undefined') {
Hammer.__hammers = new Map();
}
// convert to array
types = Array.isArray(types) ? types : types.split(/\s/);
if (elements instanceof NodeList || elements instanceof HTMLCollection) {
@@ -6416,6 +6420,14 @@
hammer.on(type, event => {
cb(event);
});
if (Hammer.__hammers.has(elements[j])) {
const elementHammers = Hammer.__hammers.get(elements[j]);
elementHammers.push(hammer);
Hammer.__hammers.set(elements[j], elementHammers);
} else {
Hammer.__hammers.set(elements[j], [hammer]);
}
}
} else {
for (let j = 0; j < elements.length; j++) {
@@ -6425,8 +6437,35 @@
}
}
}
}
return this
/**
*
*
* @static
* @param {HTMLElement|HTMLElement[]} elements - An HTML element or an array of HTML elements.
*/
static off(elements) {
if (typeof Hammer === 'undefined') {
console.error('Hammer.js not found!');
return this
}
// convert to array
if (elements instanceof NodeList || elements instanceof HTMLCollection) {
elements = Array.from(elements);
}
elements = Array.isArray(elements) ? elements : [elements];
for (let i = 0; i < elements.length; i++) {
const element = elements[i];
if (Hammer.__hammers.has(element)) {
const elementHammers = Hammer.__hammers.get(element);
elementHammers.forEach(it => it.destroy());
Hammer.__hammers.delete(element);
}
}
}
}