Destacar linhas da tabela
Oi, gente...
estou tentando fazer uma tabela HTML com os seguintes efeitos:
1) ao passar o mouse sobre uma linha, essa fica destacada das demais.
2) ao clicar sobre uma linha, destacá-la de forma fixa, até que outra seja selecionada.
Já até tenho os estilos que preciso aplicar, mas só sei fazer isso usando o :hover em links. Em tags TR não funciona.
Alguém já fez algo parecido e pode compartilhar?
Desde já, muito obrigada.
estou tentando fazer uma tabela HTML com os seguintes efeitos:
1) ao passar o mouse sobre uma linha, essa fica destacada das demais.
2) ao clicar sobre uma linha, destacá-la de forma fixa, até que outra seja selecionada.
Já até tenho os estilos que preciso aplicar, mas só sei fazer isso usando o :hover em links. Em tags TR não funciona.
Alguém já fez algo parecido e pode compartilhar?
Desde já, muito obrigada.
Rachel Andrade
Curtidas 0
Melhor post
Joel Rodrigues
15/01/2013
Que bom que deu certo e que você entendeu o funcionamento, isso é realmente importante. Não basta copiar e colar os códigos que encontramos por aí, pois sempre ficaremos dependentes de pesquisar novamente, copiar e colar.
Nesse caso, estou encerrando o tópico.
Nesse caso, estou encerrando o tópico.
GOSTEI 2
Mais Respostas
Joel Rodrigues
15/01/2013
Olá, Rachel.
Você poderia postar os estilos que você precisa aplicar às linhas em destaque? Assim já facilita pra te dar um exemplo.
Você poderia postar os estilos que você precisa aplicar às linhas em destaque? Assim já facilita pra te dar um exemplo.
GOSTEI 0
Rachel Andrade
15/01/2013
Então, os estilos que preciso aplicar são os seguintes:
Para a linha quando o mouse passa sobre:
Para a linha quando for clicada:
Grata.
Para a linha quando o mouse passa sobre:
background-color:#98FB98;
Para a linha quando for clicada:
background-color:#7CFC00; font-weight:bold;
Grata.
GOSTEI 0
Joel Rodrigues
15/01/2013
Vamos lá. Para começar crie duas classes com as configurações que você passou:
Elas serão usadas mais adiante.
.linhaHover{ background-color:#98FB98; }
.linhaSelecionada{ background-color:#7CFC00; font-weight:bold; }
Elas serão usadas mais adiante.
GOSTEI 0
Joel Rodrigues
15/01/2013
Você já usa jQuery? Se não, faça referência a essa biblioteca, da seguinte forma:
Isso dentro das tags <head> e </head> da sua página.
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
Isso dentro das tags <head> e </head> da sua página.
GOSTEI 0
Joel Rodrigues
15/01/2013
Tendo seguido os dois passos anteriores, adicione um script (também no cabeçalho da página ou em um arquivo externo), conforme o código abaixo:
Bem, não pude testar aqui. Veja se dá certo.
Boa sorte.
$(function(){ $("tr").hover( function(){$(this).addClass("linhaHover");}, function(){$(this).removeClass("linhaHover");}, ); $("tr").click(function(){ $("tr").removeClass("linhaSelecionada"); $(this).addClass("linhaSelecionada"); }); });
Bem, não pude testar aqui. Veja se dá certo.
Boa sorte.
GOSTEI 0
Rachel Andrade
15/01/2013
Poxa, valeu mesmo. vou testar aqui sim e qualquer coisa eu aviso.
Obrigada.
Obrigada.
GOSTEI 0
Rachel Andrade
15/01/2013
Desculpe a pergunta, mas esse segundo código fica em outra tag script? Não é junto do link da jQuery, né?
GOSTEI 0
Joel Rodrigues
15/01/2013
Exatamente, você pode fazer assim:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.min.js"></script> <script type="text/javascript"> $(function(){ alert("oi"); $("tr").hover( function(){$(this).addClass("linhaHover");}, function(){$(this).removeClass("linhaHover");} ); $("tr").click(function(){ $("tr").removeClass("linhaSelecionada"); $(this).addClass("linhaSelecionada"); }); }); </script>
GOSTEI 0
Rachel Andrade
15/01/2013
Agora sim, deu certo. Muito obrigada.
Só uma dúvida: eu tenho outra tabela na página onde eu não queria que acontecessem esses efeitos, nesse caso eu teria que botar "table tr" dentro do filtro?
Só uma dúvida: eu tenho outra tabela na página onde eu não queria que acontecessem esses efeitos, nesse caso eu teria que botar "table tr" dentro do filtro?
GOSTEI 0
Joel Rodrigues
15/01/2013
Na verdade você precisa dar um id ou uma classe para a tabela que você quer que tenha os efeitos. E lá no filtro da jQuery você faz, por exemplo:
Eu sugiro usar uma classe, pois você poderá reutilizar em várias tabelas.
Boa sorte.
$("#minhaTabela tr").hover.... ou $(".minhaTabela tr").hover....
Eu sugiro usar uma classe, pois você poderá reutilizar em várias tabelas.
Boa sorte.
GOSTEI 0
Rachel Andrade
15/01/2013
Isso mesmo! Agora foi... rsrsrs
Sem querer incomodar, me tira só uma dúvida, por que no seguinte trecho você usou $("tr") numa linha e $(this) na outra:
Sem querer incomodar, me tira só uma dúvida, por que no seguinte trecho você usou $("tr") numa linha e $(this) na outra:
$("tr").click(function(){ $("tr").removeClass("linhaSelecionada"); $(this).addClass("linhaSelecionada"); });
GOSTEI 0
Joel Rodrigues
15/01/2013
É o seguinte:
Na primeira linha foi usado o filtro "tr" para que o comando se aplicasse a todas as linhas (tr) da tabela. Ou seja, todas as linhas que tivessem a classe linhaSelecionada deveriam perder essa classe para voltar ao estado inicial. Na verdade só deverá haver uma linha com essa classe, pois só se pode selecionar uma linha por vez, mas como não sabemos qual linha está selecionada, aplicamos o comando em todas.
No segundo caso, só era preciso adicionar a classe linhaSelecionada àquela linha que estava sendo clicada. Por isso foi utilizada a palavra reservada this, que faz referência ao elemento que disparou o evento, no caso, a tag tr que foi clicada.
Espero ter esclarecido, caso tenha permanecido alguma dúvida, sinta-se à vontade para questionar.
Na primeira linha foi usado o filtro "tr" para que o comando se aplicasse a todas as linhas (tr) da tabela. Ou seja, todas as linhas que tivessem a classe linhaSelecionada deveriam perder essa classe para voltar ao estado inicial. Na verdade só deverá haver uma linha com essa classe, pois só se pode selecionar uma linha por vez, mas como não sabemos qual linha está selecionada, aplicamos o comando em todas.
No segundo caso, só era preciso adicionar a classe linhaSelecionada àquela linha que estava sendo clicada. Por isso foi utilizada a palavra reservada this, que faz referência ao elemento que disparou o evento, no caso, a tag tr que foi clicada.
Espero ter esclarecido, caso tenha permanecido alguma dúvida, sinta-se à vontade para questionar.
GOSTEI 1
Rachel Andrade
15/01/2013
Perfeito, entendi o funcionamento. Assim fica mais fácil de eu mesma fazer nas próximas vezes ou no mínimo ter menos dificuldade.
Muito obrigada e podem encerrar o tópico.
Muito obrigada e podem encerrar o tópico.
GOSTEI 0
Joel Rodrigues
15/01/2013
É o seguinte:
Na primeira linha foi usado o filtro "tr" para que o comando se aplicasse a todas as linhas (tr) da tabela. Ou seja, todas as linhas que tivessem a classe linhaSelecionada deveriam perder essa classe para voltar ao estado inicial. Na verdade só deverá haver uma linha com essa classe, pois só se pode selecionar uma linha por vez, mas como não sabemos qual linha está selecionada, aplicamos o comando em todas.
No segundo caso, só era preciso adicionar a classe linhaSelecionada àquela linha que estava sendo clicada. Por isso foi utilizada a palavra reservada this, que faz referência ao elemento que disparou o evento, no caso, a tag tr que foi clicada.
Espero ter esclarecido, caso tenha permanecido alguma dúvida, sinta-se à vontade para questionar.
Na primeira linha foi usado o filtro "tr" para que o comando se aplicasse a todas as linhas (tr) da tabela. Ou seja, todas as linhas que tivessem a classe linhaSelecionada deveriam perder essa classe para voltar ao estado inicial. Na verdade só deverá haver uma linha com essa classe, pois só se pode selecionar uma linha por vez, mas como não sabemos qual linha está selecionada, aplicamos o comando em todas.
No segundo caso, só era preciso adicionar a classe linhaSelecionada àquela linha que estava sendo clicada. Por isso foi utilizada a palavra reservada this, que faz referência ao elemento que disparou o evento, no caso, a tag tr que foi clicada.
Espero ter esclarecido, caso tenha permanecido alguma dúvida, sinta-se à vontade para questionar.
GOSTEI 0