44 votes

La définition de l'attribut désactivé sur un élément DE PORTÉE n'empêche pas les événements de clic

J'ai un élément <span> qui fait quelque chose sur un événement de clic.

Lorsque je le désactive, en utilisant jQuery :

$("span").attr("disabled", true);

Le gestionnaire d'événements continue d'être appelé lorsque je clique sur l'élément span.

Je teste dans Chrome 13. Des idées ?

96voto

David Espino Points 1587

Essayez ceci :

$("span").css("pointer-events", "none");

vous pouvez activer ceux de retour en

$("span").css("pointer-events", "auto");

12voto

You Points 8861

L'attribut disabled n'est pas global et n'est autorisé que sur les contrôles de formulaire. Ce que vous pouvez faire est de définir un attribut de données personnalisé (peut-être data-disabled) et de vérifier cet attribut lorsque vous gérez l'événement de clic.

10voto

Le comportement standard de l'attribut désactivé ne se produit que pour les éléments de formulaire. Essayez de déconnecter l'événement :

$("span").unbind("click");

8voto

3nigma Points 21164

Essayez de déconnecter l'événement.

$("span").click(function(){
alert($(this).text());
    $("span").not($(this)).unbind('click');
});

Voici le violon

3voto

Mohit Points 58

Il y a un sale truc, ce que j'ai utilisé :

J'utilise bootstrap, donc j'ai juste ajouté la classe .disabled à l'élément que je veux désactiver. Bootstrap gère le reste des choses.

Les suggestions à cet égard sont les bienvenues.

Ajout de la classe sur le temps d'exécution :

$('#element').addClass('disabled');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X