web-dev-qa-db-fra.com

Différence entre .on ('click' et .off ('click'). On ('click')

À quoi sert ou différent de .off combinaison avec .click?

$('#link').off('click').on('click',function(){});

Vs

$('#link').on('click',function(){});

Quels sont les avantages de Combiner eux?

13
weBBer

Cela ajoute un nouveau gestionnaire d'événement click:

$('#link').on('click', function(){});

Cela supprime tous les gestionnaires d'événements click existants qui ont été attachés avec .on() (le cas échéant), puis ajoute un nouveau gestionnaire d'événement click:

$('#link').off('click').on('click', function(){});
11
Racil Hilan

De la documentation jquery,

La méthode .off () supprime les gestionnaires d'événements qui étaient attachés avec .on (). Voir la discussion des événements délégués et directement liés sur cette page pour plus d'informations. L'appel de .off () sans argument supprime tous les gestionnaires attachés aux éléments. Des gestionnaires d'événements spécifiques peuvent être supprimés sur les éléments en fournissant des combinaisons de noms d'événements, d'espaces de noms, de sélecteurs ou de noms de fonctions de gestionnaires. Lorsque plusieurs arguments de filtrage sont fournis, tous les arguments fournis doivent correspondre pour que le gestionnaire d'événements soit supprimé.

Dans votre question,

$('#link').off('click').on('click',function(){});

Il supprimera simplement tout gestionnaire d'événements précédent associé à l'événement et en créera un nouveau.

3
Runcorn

Nous utilisons $('#link').on('click',function(){}); lorsque nous savons qu'aucune autre fonction de clic n'est déjà liée à cet élément ou même si une autre fonction de clic est une liaison, cela n'entrave pas notre fonction de clic. Nous utilisons .off pour dissocier (arrêter) la fonctionnalité de clic de tous les endroits pour cet élément, puis nous utilisons .on click pour lier uniquement notre fonctionnalité de clic.

1
Vishal Khode