A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

jQuery - Tabelas listradas

Ter

2

Dez

2008


11:12

(8 votos, média 5.00 de 5) 


Mais algumas firulas

Se você entendeu o mecanismo da jQuery, garanto que está ficando mais fácil criar código. Minha sugestão é a de fazer com que as linhas mudem de cor quando o cursor do mouse estiver sobre elas - o tal de rollover. Para isto vamos adicionar mais duas funções:

Primeiro caçamos novamente todos os elementos tr das tabelas da classe zebra e adicionamos o evento mouseover (mouse sobre). Para quando este evento ocorrer criamos uma nova função que adiciona uma classe aos tr chamada over. A seguir, buscamos novamente todos os elementos tr das mesmas tabelas e adicionamos o evento mouseout (mouse fora). Novamente, quando este evento ocorrer, ele chama uma outra função que remove a classe anteriormente adicionada, ou seja, retira a classe over.

Observe uma nova particularidade. Ao invés de colocar dentro das novas funções uma chamada para $(".zebra tr"), usamos $(this). Em português, this significa este ou estes. Como as funções mouseover e mouseout foram aplicadas aos elementos obtidos com $(".zebra tr"), as funções aninhadas dentro destas funções não precisam buscar os mesmos elementos - podem referenciá-los com this porque estes elementos são herdados da função que as precederam. É claro que, se tivéssemos repetido $(".zebra tr") no lugar de $(this), o código iria funcionar da mesma forma. O mesmo não é válido para $(".zebra tr:even"). Se usássemos $(this:even) estaríamos aplicando a propriedade even ao objeto document, porque esta função está aninhada sob $(document). Aliás, nem pode funcionar porque o elemento document nem tem esta propriedade.

Ah! Não se esqueça de adicionar aos estilos o seguinte:

tr.over td { background: #bcd4ec; }

Pois bem, como é que fica a nossa nova tabela da classe zebra? Fica assim:

Título 1Título 2Título 3
texto1texto2texto3
texto1texto2texto3
texto1texto2texto3
texto1texto2texto3
texto1texto2texto3

Otimizando o código jQuery

Já vimos que podemos usar $(this) porque a função herdou os elementos da função anterior. Se uma função herda os elementos da função anterior, então porque chamá-los novamente na segunda função (mouseout) que lida com os mesmos elementos? É aí que entra a mágica do encadeamento da jQuery. Enquanto os elementos forem os mesmos, podemos grudar uma função na outra! Podemos otimizar o código jQuery mostrado acima transformando-o no seguinte:

Agora me diz o que você prefere? O código HTML do início do tutorial ou este do final? Eu adorei reduzir o código (e não foi pouco) e partir para um Javascript mais avançado que faz uso do DOM - mais versátil, menos trabalhoso e pronto para uso em qualquer página que eu criar. Aliás, se você colocar o CSS num arquivo à parte, assim como o código jQuery, você pode incorporá-los em qualquer outra página e precisa lembrar apenas de adicionar class="zebra" nas tabelas em que quiser obter este efeito.

Valeu pessoal! Espero ter conseguido passar o recado.

E, como sempre, abraço da vó vovo

онлайн игровые автоматы alcatrazсъемная ручка для сковороды купить отдельноотзывы полигонрейтинг crmигрысковорода с керамическим покрытием отзывыполигон компания

Informações adicionais