je peux utiliser ce code pour supprimer l'événement click,
$('p').unbind('click')
mais, a une méthode pour supprimer tous les événements?
a une méthode nommée unbindAll
dans jquery?
merci
Depuis jQuery 1.7, off()
et on()
sont les méthodes préférées pour lier et dissocier les gestionnaires d'événements.
Donc, pour supprimer tous les gestionnaires d'un élément, utilisez ceci:
$('p').off();
ou pour des gestionnaires spécifiques:
$('p').off('click hover');
Et pour ajouter ou lier des gestionnaires d'événements, vous pouvez utiliser
$('p').on('click hover', function(e){
console.log('click or hover!');
});
@jammypeach a raison de dire que l'on & off est la méthode acceptée à utiliser. La dissociation finit parfois par créer des comportements étranges (par exemple, ne dissocie pas réellement les événements correctement).
Pour dissocier tous les éléments du corps, trouvez-les tous et pour chacun, désactivez le gestionnaire de clic (quel était l'ancien détachement):
$("body").find("*").each(function() {
$(this).off("click");
});
Voir également comment enregistrer les événements que vous avez désactivés dans cette question de débordement de pile .