106 votes

Comment obtenir la classe de l'élément cliqué ?

Je n'arrive pas à trouver comment obtenir la class de l'élément cliqué.

Quand j'utilise le code ci-dessous, j'obtiens "node-205" à chaque fois.

jQuery :

.find('> ul')
.tabs(
{
    selectedClass: 'active',
    select: function (event, ui) {
        //shows only the first element of list
        $(this).children('li').attr('class');
    },
    cookie: { expires: 0 },
    fx: fx
})

HTML :

<ul class="tabs">
  <li class="node-205"></li>
  <li class="node-150"></li>
  <li class="node-160"></li>
</ul>

1voto

War10ck Points 3872

J'ai vu cette question et j'ai pensé que je pourrais la développer un peu plus. Il s'agit d'une extension de l'idée de @SteveFenton. Au lieu de lier un click à chaque li il serait plus efficace de déléguer les événements de l'élément ul en bas.

Pour jQuery 1.7 et supérieur

$("ul.tabs").on('click', 'li', function(e) {
   alert($(this).attr("class"));
});

Documentation : .on()

Pour jQuery 1.4.2 - 1.7

$("ul.tabs").on('li', 'click', function(e) {
   alert($(this).attr("class"));
});

Documentation : .delegate()

En dernier recours pour jQuery 1.3 - 1.4

$("ul.tabs").children('li').live('click', function(e) {
   alert($(this).attr("class"));
});

ou

$("ul.tabs > li").live('click', function(e) {
   alert($(this).attr("class"));
});

Documentation : .live()

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