Não consigo descobrir como obter o class
valor do elemento clicado.
Quando uso o código abaixo, recebo "node-205" sempre.
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>
Respostas:
Aqui está um exemplo rápido de jQuery que adiciona um evento de clique a cada tag "li" e recupera o atributo de classe para o elemento clicado. Espero que ajude.
Da mesma forma, você não precisa envolver o objeto no jQuery:
E nos navegadores mais recentes, você pode obter a lista completa dos nomes das classes :
Você pode emular
classList
em navegadores antigos usandomyClass.split(/\s+/);
fonte
fonte
Vi essa pergunta e pensei em expandir um pouco mais. Essa é uma expansão da ideia que @SteveFenton teve. Em vez de vincular um
click
evento a cadali
elemento, seria mais eficiente delegar os eventos deul
baixo para cima.Para jQuery 1.7 e superior
Documentação:
.on()
Para jQuery 1.4.2 - 1.7
Documentação:
.delegate()
Como último recurso para o jQuery 1.3 - 1.4
ou
Documentação:
.live()
fonte
Isso deve fazer o truque:
Para mais informações sobre o ui.tab, consulte http://jqueryui.com/demos/tabs/#Events
fonte
Todas as soluções fornecidas forçam você a conhecer o elemento no qual você clicará previamente . Se você deseja obter a classe de qualquer elemento clicado, pode usar:
fonte
$(e.target)
vez de,$('#' + e.target.id)
e o jQuery ainda tratará esse caso razoavelmente.fonte