2017-07-17 1 views

Répondre

3

Cela ajoute un nouveau gestionnaire d'événements 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) et ajoute ensuite un nouveau gestionnaire d'événements click:

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

votre réponse était simple et compréhensible. Mais ce comportement '.off' peut être réalisé en utilisant' event.preventdefault() 'right. ? – weBBer

+0

Eh bien, pas vraiment. Où voulez-vous mettre 'event.preventdefault()'? –

+0

S'il y a un autre gestionnaire d'événement 'click' dans mon actuel' click' - je peux l'empêcher par 'event.preventdefault()' right. quels sont les différents? – weBBer

2

De la documentation jquery,

Le. La méthode off() supprime les gestionnaires d'événements attachés avec .on(). Pour plus d'informations, reportez-vous à la section consacrée aux événements délégués et directement liés sur la page . L'appel de .off() sans argument supprime tous les gestionnaires attachés aux éléments. Les 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 donnés, 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 va supprimer simplement tout gestionnaire d'événements précédent attaché à l'événement et créer un nouveau.

1

Nous utilisons $('#link').on('click',function(){}); alors que nous savons qu'il n'y a pas d'autre fonction de clic qui lie déjà cet élément ou même si une autre fonction de clic est une liaison, cela n'empêche pas notre fonction de clic. Nous utilisons .off pour dissocier (arrêter) la fonctionnalité de clic de tous les endroits pour cet élément et ensuite nous utilisons .on cliquez pour lier seulement notre fonctionnalité de clic.