Implemented InteractionMapper.off
This commit is contained in:
Vendored
+40
-1
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+40
-1
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user