Bonjour à tous
J'ai récupéré et adapté le handler suivant qui sert à différencier click/dbleClick.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| var doubleClickCallback = function(e){ console.log('double') },
singleClickCallback = function(e){ console.log('single') };//e.stopPropagation();
var makeDoubleClick = function(e) {
return (function () {
var clicks = 0,
timeout;
return function () {
var event = e;
clicks++;
if (clicks == 1) {
timeout = setTimeout(function () {
singleClickCallback(event);
clicks = 0;
}, 300);
} else {
clearTimeout(timeout);
doubleClickCallback(event);
clicks = 0;
}
};
}());
} |
Cette version me semble préférable à celle qui consiste à utiliser l'event dblclick. On peut toujours discuter de sa pertinence (et si vous avez mieux ça m'intéresse) mais ce n'est pas la question ici.
Ma question c'est comment récupérer l'event e (pour l'envoyer aux handlers terminaux) sachant que je ne parviens pas à l'envoyer à cette structure, parce que l'affectation se fait de façon inhabituelle, la 1ère fonctionne alors que la 2nde (que je veux utiliser) ne marche pas :
1 2
| element.addEventListener('click', makeDoubleClick(), false);
element.addEventListener('click', makeDoubleClick, false); |
Je sais bien que peux toujours faire ça :
element.addEventListener('click', function(e){ makeDoubleClick(e) } , false);
Mais sinon qu'est ce que j'ai pas compris ?
Merci d'avance
Partager