Source: Prevent jQuery events from firing multiple times
Le problème
1 |
$('a', '#cdDropdown').on('click', cachedMenu); |
Avec cette déclaration, la fonction cachedMenu
à exécuter au clic sur un lien enfants de #cdDropdown
dans le DOM était exécutée plusieurs fois (6 fois) à chacun de mes clics. La multiplication des exécutions était exponentielle car en m’amusant à cliquer environ 12 à 15 fois sur des liens, la console de debug a loggué pas moins de 11045 exécutions de ma fonction!!!
La solution
1 |
$('a', '#cdDropdown').off('click', cachedMenu).on('click', cachedMenu); |
Avant d’activer un événement avec la méthode jQuery .on()
, il faut tout simplement le désactiver avec la méthode .off()
.