Je ne peux pas comprendre comment obtenir la class
valeur de l'élément cliqué.
Lorsque 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>
Réponses:
Voici un exemple rapide de jQuery qui ajoute un événement click à chaque balise "li", puis récupère l'attribut de classe pour l'élément cliqué. J'espère que ça aide.
De même, vous n'avez pas à encapsuler l'objet dans jQuery:
Et dans les nouveaux navigateurs, vous pouvez obtenir la liste complète des noms de classe :
Vous pouvez émuler
classList
dans des navigateurs plus anciens en utilisantmyClass.split(/\s+/);
la source
la source
J'ai vu cette question alors j'ai pensé que je pourrais développer un peu plus. Il s'agit d'une extension de l'idée qu'avait @SteveFenton. Au lieu de lier un
click
événement à chaqueli
élément, il serait plus efficace de déléguer les événements deul
bas en haut.Pour jQuery 1.7 et supérieur
Documentation:
.on()
Pour jQuery 1.4.2 - 1.7
Documentation:
.delegate()
En dernier recours pour jQuery 1.3 - 1.4
ou
Documentation:
.live()
la source
Cela devrait faire l'affaire:
Pour plus d'informations sur ui.tab, voir http://jqueryui.com/demos/tabs/#Events
la source
Toutes les solutions proposées vous obligent à connaître l'élément sur lequel vous cliquerez au préalable . Si vous souhaitez obtenir la classe d' un élément cliqué, vous pouvez utiliser:
la source
$(e.target)
place de$('#' + e.target.id)
et jQuery traitera toujours ce cas de manière raisonnable.la source