2010-09-21 4 views
0

J'ai un .click() sur plusieurs boutons. Chaque .click() appelle une fonction. La fonction doit savoir quel bouton l'a appelé afin qu'il puisse afficher ou masquer un contenu différent et modifier les styles des autres boutons. La fonction a un objet événement qui lui est passé.jQuery, découvrez la classe d'un objet dom

Y a-t-il un moyen d'obtenir la classe actuelle de l'objet événement?

Répondre

1

Vous pouvez obtenir la classe avec .className ou .attr("class"), bien que ce que vous avez probablement voulez est d'avoir this consulter le bouton, par exemple:

$(".selector").click(myFunction); 

function myFunction() { 
    //this == button that was clicked 
    var c = this.className; 
} 

ou une fonction en ligne:

$(".selector").click(function() { 
    var c = this.className; 
}); 
0

Tant que vous passez cela à une fonction (bien que cela dépende de la façon dont vous le faites, du code serait bien!), Si vous passez e comme premier paramètre de la fonction t si vous pouvez utiliser e.target.className pour obtenir la classe, ou, avec jQuery $ (e.target) .attr ('class');

-1

N'avez-vous pas pu faire différentes fonctions pour les différents appels .click()?

+0

Je vais finir avec entre 25 et 35 appels .click(). Je préfère qu'ils appellent tous une fonction plutôt que d'avoir 25 ou 35 fonctions différentes. – Supermighty

2
$('myButton').click(function() { 
    var className = this.className; // This will give you the whole class string of the clicked element 
    var hasClass = $(this).hasClass('myClass'); // This will tell you (true or false) whether the clicked element has class 'myClass' 
}); 
+0

C'est bon, car je ne connaîtrai pas le nom de la classe avant. – Supermighty

+0

Dans ce cas, est-ce la même chose que l'objet événement que le clic passe à la fonction? – Supermighty

+0

Ce n'est pas l'objet événement, c'est l'élément DOM qui a déclenché le clic. (Ce qui serait le même que 'target' ou' srcElement' de l'objet événement). –

Questions connexes