Mostrar esconder tabelas dentro da tr clicada

1,251 views
Skip to first unread message

John-Henrique

unread,
Jul 2, 2010, 8:50:26 PM7/2/10
to jQuery (Brasil)
Tenho uma tabela que possui outra tabela dentro de cada elemento tr,
preciso que quando clicar em uma tr seja exibido/escondido a tabela
que está dentro da tr clicada.

O máximo que cheguei foi isso

$( 'table tbody tr' ).click( function()
{

$( 'table table tr' ).toggle();
})

Mas isso ai mostra/esconde todas as tabelas (clicadas ou não)

Luiz Tiago Oliveira

unread,
Jul 2, 2010, 9:14:46 PM7/2/10
to jque...@googlegroups.com
$( 'table tbody tr' ).click( function()
       {

               $(this).toggle();
       })


2010/7/2 John-Henrique <johnhe...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery (Brasil)" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/jquery-br?hl=pt-BR.




--
Luiz Tiago Oliveira
Instrutor iMedia Brasil | Front-End Engineer | Gerente de Projetos
www.luiztiago.com | luiz...@luiztiago.com

::. Eris .::

unread,
Jul 2, 2010, 9:25:28 PM7/2/10
to jque...@googlegroups.com
Coloca o THIS dentro da função!
$( this ).toggle();

Atenciosamente,
Erismar B. Vieira
Desenvolvedor Web
PHP - ASP - ASP.NET - C# - AS 2.0 - CSS 2.0 - ADOBE CS4 STUDIO - MYSQL - SQL
- JS - JQuery
PlugWeb
Evite imprimir. Colabore com o Meio Ambiente.

-----Mensagem original-----
De: jque...@googlegroups.com [mailto:jque...@googlegroups.com] Em nome
de John-Henrique
Enviada em: sexta-feira, 2 de julho de 2010 21:50
Para: jQuery (Brasil)
Assunto: [jquery-br] Mostrar esconder tabelas dentro da tr clicada

--

Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery
(Brasil)" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para
jquery-br+...@googlegroups.com.
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/jquery-br?hl=pt-BR.

__________ Informação do ESET NOD32 Antivirus, versão da vacina 5247
(20100702) __________

A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com

__________ Informação do ESET NOD32 Antivirus, versão da vacina 5247
(20100702) __________

A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com

Washington Botelho

unread,
Jul 2, 2010, 9:49:08 PM7/2/10
to jque...@googlegroups.com
Você deve colocar suas sub tabelas dentro das tds e não das trs.
Se você usar somente o $(this), toda sua linha vai sumir e não fará mais o toogle.
Você precisa de mapear o conteúdo das suas tds filhas da trs clicadas e as tables filhas das tds assim:

<table id="tabela-principal">
    <tr style="background-color: #DDD;">
        <td height="20px" width="100px">
            <table>
                <tr>
                    <td>Tabela 1-1</td>
                </tr>
            </table>
        </td>
        <td height="20px" width="100px">
            <table>
                <tr>
                    <td>Tabela 1-2</td>
                </tr>
            </table>
        </td>
    </tr>
    <tr style="background-color: #DDD;">
        <td height="20px" width="100px">
            <table>
                <tr>
                    <td>Tabela 2-1</td>
                </tr>
            </table>
        </td>
        <td height="20px" width="100px">
            <table>
                <tr>
                    <td>Tabela 2-2</td>
                </tr>
            </table>
        </td>
    </tr>
</table>

<script>
    $('table#tabela-principal tbody tr').live('click', function() {
        $(this).children('td').children('table').toggle();
    });
</script>


--
@wbotelhos
Washington Botelho dos Santos {
  http://wbotelhos.com;
}

John-Henrique

unread,
Jul 2, 2010, 10:09:30 PM7/2/10
to jQuery (Brasil)
Sim, mas se eu faço do jeito que vocês disseram a TR clicada some de
vez ai não dá pra clicar novamente pra mostrar ela. Preciso que
somente a tabela dentro da TR seja escondida, deixa eu ver se consigo
exemplificar.


Veja este exemplo http://jsbin.com/efifa4
> Para obter mais opções, visite esse grupo emhttp://groups.google.com/group/jquery-br?hl=pt-BR.

gustavo pereira

unread,
Jul 2, 2010, 10:37:27 PM7/2/10
to jque...@googlegroups.com
http://jsbin.com/aqasu


--------------------------------------------------------------------------------------------------------------------------
Gustavo Pereira
+55(13) 91116875
E-mail: gustavoper(a)gmail.com



2010/7/2 John-Henrique <johnhe...@gmail.com>

Juarez Gonçalves Nery Junior

unread,
Jul 3, 2010, 7:12:11 AM7/3/10
to jque...@googlegroups.com
Use o delegate


[s]

2010/7/2 John-Henrique <johnhe...@gmail.com>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery (Brasil)" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/jquery-br?hl=pt-BR.

Washington Botelho

unread,
Jul 3, 2010, 12:49:16 AM7/3/10
to jque...@googlegroups.com
John, você nem copiou e colou o código que te mandei pronto, pois ele não some a tr.
Inclusive te expliquei o porque não fazer da forma do Eris para não acontecer isso e fazer do jeito que te passei.

John-Henrique

unread,
Jul 5, 2010, 8:02:04 AM7/5/10
to jQuery (Brasil)
@ WASHINGTON

Eu estava respondendo ao @ ERIS, no momento em que respondi a
interação anterior não apareciam nenhuma interação de mais ninguém,
mas, vi agora que o modo que você publicou funciona mas precisa do
live em adicional, já o método do @ JUAREZ fez a mesma coisa sem
precisar de adicional.

Valeu a todos.
Reply all
Reply to author
Forward
0 new messages