Ich kann nicht herausfinden, wie ich den class
Wert des angeklickten Elements erhalte .
Wenn ich den folgenden Code verwende, erhalte ich jedes Mal "node-205" .
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>
Antworten:
Hier ist ein kurzes jQuery-Beispiel, das jedem "li" -Tag ein Klickereignis hinzufügt und dann das Klassenattribut für das angeklickte Element abruft. Ich hoffe es hilft.
Ebenso müssen Sie das Objekt nicht in jQuery einschließen:
In neueren Browsern erhalten Sie die vollständige Liste der Klassennamen :
Sie können
classList
in älteren Browsern mit emulierenmyClass.split(/\s+/);
quelle
quelle
Ich habe diese Frage gesehen und dachte, ich könnte sie etwas weiter ausbauen. Dies ist eine Erweiterung der Idee, die @SteveFenton hatte. Anstatt ein
click
Ereignis an jedesli
Element zu binden , wäre es effizienter, die Ereignisse vonul
unten zu delegieren .Für jQuery 1.7 und höher
Dokumentation:
.on()
Für jQuery 1.4.2 - 1.7
Dokumentation:
.delegate()
Als letzter Ausweg für jQuery 1.3 - 1.4
oder
Dokumentation:
.live()
quelle
Dies sollte den Trick tun:
Weitere Informationen zur Datei ui.tab finden Sie unter http://jqueryui.com/demos/tabs/#Events
quelle
Alle angebotenen Lösungen zwingen Sie dazu , das Element zu kennen, auf das Sie vorher klicken werden . Wenn Sie die Klasse von einem angeklickten Element erhalten möchten, können Sie Folgendes verwenden:
quelle
$(e.target)
anstelle von verwendet werden kann$('#' + e.target.id)
und jQuery diesen Fall weiterhin angemessen behandelt.quelle