Efeito jQuery toggle para revelar e esconder
Publicado em: 2009-06-22 — 362.633 visualizacoes
Um dos efeitos mais empregados em desenvolvimento com uso da biblioteca jQuery é aquele que proporciona ao usuário a escolha de revelar e esconder conteúdos.
Neste tutorial vou mostrar os fundamentos da técnica que fazem funcionar este efeito, desenvolvendo um exemplo prático no qual mostrarei como fazer seu script não obstrutivo e um pequeno plugin que se destina a fazer a mudança do texto que o usuário deverá clicar para Revelar ou Esconder o conteúdo.
O efeito revelar/esconder carrega consigo implicitamente as seguintes facilidades
- é simples e fácil de ser projetado;
- requer cuidados mínimos para ser “não obstrutivo”;
- permite inserir muito conteúdo em pouco espaço;
- facilita a visualização e entendimento dos conteúdos;
- proporciona interação agradável com o usuário;
- cria impacto visual interessante.
Desenvolvi um exemplo prático que ilustra as técnicas aqui demonstradas. O exemplo encontra-se em: Revelar e esconder conteúdos com jQuery.
Como funciona?
A estrutura de marcação HTML necessária para o funcionamento do efeito consiste, basicamente, em se marcar um texto curto, uma palavra ou mesmo um símbolo que servirá de “chave”, a ser clicado pelo usuário, para fazer o efeito funcionar, ou seja revelar e esconder o conteúdo. A chave referida é de duas posições tal como são os interruptores de corrente elétrica destinados a acender e apagar luzes.
Os textos curtos que definem as posições da chave normalmente são: “revelar/esconder”, “ver/ocultar”, “abrir/fechar” “mostrar/esconder” ou ainda os símbolos “+/-“, etc.
Em seguida à chave encontra-se a marcação dos conteúdos a revelar/esconder. Estes conteúdos devem ser inseridos com marcação HTML semântica apropriada e, obviamente, variável com o tipo de conteúdo.
Inicialmente é apresentada ao usuário uma página contendo uma lista de chaves na posicão “Revelar” que ao serem clicadas revelarão o conteúdo a seguir e ao mesmo tempo mudarão a chave para a posição “Esconder”. Sempre que o usuário clicar uma chave para revelar e existir um conteúdo que tenha sido revelado anteriormente este deverá ser escondido.
Marcação HTML
Observe a marcação HTML que foi desenvolvida para o exemplo que ilustra esta matéria.
<div id="box-toggle"> <div class="tgl"> <h2>Conteúdo um</h2> <p>Lorem ipsum dolor sit amet, consectetuer...</p> </div> <div class="tgl"> <h2>Conteúdo dois</h2> <p>Lorem ipsum dolor sit amet, consectetuer...</p> </div> <div class="tgl"> <h2>Conteúdo três</h2> <p>Lorem ipsum dolor sit amet, consectetuer...</p> </div> </div>
No exemplo criamos três blocos de conteúdos a revelar/esconder. Os textos das chaves não foram marcados diretamente no HTML. Eles serão criados com JavaScript como veremos a seguir. Fizemos assim para que as chaves não apareçam quando a página for renderizada com JavaScript desabilitado. Outro cuidado que devemos ter é não esconder inicialmente os conteúdos a revelar com uso de folhas de estilo. Se assim fizermos iremos bloquear o acesso aos conteúdos em navegadores com JavaScript desabilitado. Esconda os conteúdos com declaração CSS definida com JavaScript.
Os dois cuidados mencionados acima fazem com que seu script retire da marcação as chaves e não bloqueie acesso aos conteúdos quando JavaScript e/ou CSS estiverem desabilitadas no navegador. E, infelizmente a quase totalidade dos scripts para produzir o efeito revelar/esconder que tenho encontrado na web não levam em conta estas duas considerações. Colocam, equivocadamente, a chave diretamente na marcação e escondem conteúdos com regras CSS em folhas de estilo.
Notar ainda que os conteúdos foram inseridos dentro de um div
com a classe tgl
e a área que contém os três conteúdos foi inserida dentro de um div
geral com id box-toggle
.
Script jQuery
<script type="text/javascript">
jQuery.fn.toggleText = function(a,b) {
return this.html(this.html().replace(new RegExp("("+a+"|"+b+")"),function(x){return(x==a)?b:a;}));
}
$(document).ready(function(){
$('.tgl').before('Revelar conteúdo');
$('.tgl').css('display', 'none')
$('span', '#box-toggle').click(function() {
$(this).next().slideToggle('slow')
.siblings('.tgl:visible').slideToggle('fast');
// aqui começa o funcionamento do plugin
$(this).toggleText('Revelar','Esconder')
.siblings('span').next('.tgl:visible').prev()
.toggleText('Revelar','Esconder')
});
})
</script>
Código comentado
Linha | Descrição |
---|---|
2 | Sintaxe para criar um método personalizado denominado toggleText que executa uma função admitindo dois parâmetros, a e b. Cria um pequeno plugin. |
3 | O método criado verifica qual é conteúdo HTML textual de um elemento entre os dois fornecidos nos parâmetros da função e troca um pelo outro. Considere, por exemplo, a=Revelar e b=Esconder para entender o funcionamento da função. |
7 | Criamos, com script, a marcação HTML para a chave revelar/esconder com o valor inicial revelar e a inserimos antes dos conteúdos a revelar div.tgl . |
8 | Escondemos os conteúdos a revelar com declaração CSS no script. |
9 | Atrelamos o evento click às chaves. |
10 | Clicando a chave a visibilidade do conteúdo imediatamente a seguir é trocada. Se escondida é revelada e vice-versa. |
11 | Ao mesmo tempo qualquer dos conteúdos vizinhos que estejam revelados serão escondidos. |
13 | Alterna Revelar com Esconder. |
14 e 15 | Troca Esconder por Revelar para conteúdos vizinhos que estejam revelados e foram escondidos conforme descrito para a linha 11. |
O exemplo que ilustra este tutorial encontra-se em: Revelar e esconder conteúdos com jQuery.
Créditos para o pequeno plugin Autor: Matt Kruse
Desenvolvimento com Padrões Web? Adquira os livros do Maujor
Visite o site dos livros.
Esta matéria foi publicada em: 2009-06-22 (segunda-feira). Subscreva o feed RSS 2.0 para comentários.
Comente abaixo, ou link para http://www.maujor.com/blog/2009/06/22/efeito-jquery-toggle-para-revelar-e-esconder/trackback no seu site.
Νossa, muito bom! Abraços! 😉
Fantástico.
Quero criar um checkbox, onde ao selecioná-lo, ai sim aparece.
Como seria?
Obrigado.
Bom dia, gostaria de saber como faço pra poder abrir um link no lugar de um conteúdo estático, tipo ao clicar em revelar conteúdo 1 abrir o site da Google por exemplo?
Só vou comentar pra dizer muito obrigado! Era exatamente o que eu procurava e de maneira muito simples!
Muito obrigado era o que eu estava procurando! Parabéns pelo site!
Para quem esta com dificuldades em trocar o titulo dos conteudos:
ao invéz de atribuir o span com jquery como em $(‘.tgl’).before(‘Revelar conteúdo’);
crie os spans no html antes das divs escondidas.
funciona perfeitamente
Basta apertar Ctrl+U na ´página que mostrao exemplo funcionando, copiar e colar o codigo no notepad++ e salvar no formato .html
Segue alteração do código alterado conforme muitos queriam desta forma o seu funcionamento:
#box-toggle {
width:500px;
margin:0 auto;
text-align:justify;
}
#box-toggle .tgl {margin-bottom:30px;}
#box-toggle .tg2 {margin-bottom:30px;}
#box-toggle .tg3 {margin-bottom:30px;}
#box-toggle .tg4 {margin-bottom:30px;}
#box-toggle span {
display:block;
cursor:pointer;
font-weight:bold;
font-size:12px;
color:#c30;
margin-top:15px;
}
jQuery.fn.toggleText = function(a,b) {
return this.html(this.html().replace(new RegExp(“(“+a+”|”+b+”)”),function(x){return(x==a)?b:a;}));
}
$(document).ready(function(){
$(‘.tgl’).before(’16) Quais as garantias e seguranças em ser um franqueado?’);
$(‘.tgl’).css(‘display’, ‘none’)
$(‘.tg2’).before(‘Pergunta 2’);
$(‘.tg2’).css(‘display’, ‘none’)
$(‘span’, ‘#box-toggle’).click(function() {
$(this).next().slideToggle(‘slow’)
.siblings(‘.tgl:visible’).slideToggle(‘fast’);
$(this).toggleText(‘Revelar’,’Esconder’)
.siblings(‘span’).next(‘.tgl:visible’).prev()
.toggleText(‘Revelar’,’Esconder’)
});
})
resposta da pergunta 1.
resposta da pergunta 2
Para ver o script em ação acesse a página: http://www.franquia.delyver.com.br
Att. Publycydade • http://www.publycydade.com.br
Fantástico este script. Realizei várias alterações a partir deste modelo e ficou como exatamente o cliente exigiu.
e se eu quiser fazer sem usar javascript, tem como?
Bom dia pessoal, muito bom o topico, poria me dar uma dica como posso fazer isso só que abrindo laterlmente?
estilo esse site http://www.totaljobs.com onde tem uma aba na direita escrito Recuiting?
Puxa não tenho nenhum norte para poder tirar uma referencia a mais perto foi a sua, valeu.
Eu tentei fazer aqui em casa com o intuito de fazer o btn “Continue Lendo …” ser trocado após o clique para “fechar” mas n deu certo, será q alguém poderia me ajudar? Aqui esta meu script ↓↓↓
jQuery.fn.toggleText = function (a, b) {
return this.html(this.html().replace(new RegExp(“(” + a + “|” + b + “)”), function (x) { return (x == a) ? b : a; }));
}
$(document).ready(function () {
$(‘.tgl’).before(”);
$(‘.tgl’).css(‘display’, ‘none’)
$(‘input’, ‘#boxe-toggle’).click(function () {
$(this).next().slideToggle(‘slow’)
.siblings(‘.tgl:visible’).slideToggle(‘fast’);
$(this).toggleText(‘Continue Lendo …’, ‘Fechar’)
.siblings(‘input’).next(‘.tgl:visible’).prev()
.toggleText(‘Continue Lendo …’, ‘Fechar’)
});
})
Muito bom o tutorial, parabens!!
vlw pelo tutorial,
Tem como modificar o titulo:
revelar conteúdo”
“revelar conteúdo”
“revelar conteúdo”
para
testo1
testo 2
em diante
Maujor, ficou bem leve e fácil de implementar no código. Como faria a função quando já clickado uma vez, o conteúdo do outro item continue sendo mostrado?
Maujor, como colocar ao inves de colocar o span para mostrar o conteudo como posso colocar uma imagem?
Mais uma vez parabenizo o post. Mas tenho uma dúvida: quero utilizar a função para exibir formulários distintos. P.ex: ao invés de aparecer em todos os conteúdos o mesmo título, como está no exemplo do post:
“revelar conteúdo”
“revelar conteúdo”
“revelar conteúdo”
Quero colocar “conteúdo1”, “conteúdo2” e assim por diante. Alguém tem ideia?
valeu!
O post é show e funcionou legal. Mas quando coloquei o script numa página “https” ele parou de funcionar.
O que fazer?
PARABÉNS foi a melhor explicação que eu já vi na net, tetei várias e aqui consegui fazer!!! Muito obrigada
me ajudou muito…… funcionou direitinho tambem xD
[…] de ficar um tempo sem postar, hoje trago uma dica que encontrei no blog do Maujor, onde ele usa um efeito chamado ‘Box Toggle’ para esconder e mostrar objetos.Adaptei o […]
amigo, como eu faço pra quando clicar no abrir mais o nome sumir ??
Gostei muito desse tutorial. Mas não estou conseguindo, coloquei no Dreamweaver e quando vou testar os textos ficam abertos mas sem efeito. O que está acontecendo?
Eu tb estou com a mesa duvida do alex:
Bom dia otimo tutorial
Só que eu gostaria de usar este efeito em uma lista ul li, sendo a mesma abastecida por um banco de dados sql dentro de um loop
ex.:
dica 01
dica 02
dica 03
dica …. e assim por diante
alguém pode ajudar
Bom dia. Como as demais dúvidas, gostaria de saber como trocar o “Revelar conteúdo” e “Esconder Conteúdo” por palavras da minha preferência.
Amigo, fiz uso do seu tutorial porem surgiu uma duvida:
tem como criar um titulo diferente pra cada texto. Ex;
No titulo “o que é lorem ipsun?” quando a pessoa clicar sobre a pergunta, surgir a resposta. Tem como?
Parabéns Maujor. Excelente publicação…
Muito Bom!!!!… obrigado pela dica, melhor resultado encontrado p/ otimizar conteúdo dentro do html. SHOW!!!!!
Olá.. parabens pelo seu blog.. muito bom.. queria aproveitar com relação a esse post, estou procurando algo similar, porém para terem acesso ao conteudo oculto o leitor tem de curtir a pagina do facebook, existe isso para blogger,??
Bom dia otimo tutorial
Só que eu gostaria de usar este efeito em uma lista ul li, sendo a mesma abastecida por um banco de dados sql dentro de um loop
ex.:
dica 01
dica 02
dica 03
dica …. e assim por diante
alguém pode ajudar
Olá.
Obrigado. Bom, gostaria de fazer o seguinte:
O conteudo da TG1 ficar sempre visivel e quando clicar em Mostrar + Cat, mostra o conteudo da TG2 e oculta o TG1.
Tem como fazer?
valeu
Muito bom! Ajudou muito! Pelos outros tutoriais que tentei esse efeito Toggle só funcionava em um “conteúdo” por página, mas esse funcionou em todos direitinho 😀
Olá, belo script! Obrigado!
Pode me dar uma dica?
Gostaria que quando a pessoa clica-se no revelar conteúdo a página não subi-se ao topo. é possível?
Gostaria de saber se é possível a div aparecer aberta com conteúdo divulgado juntamente com a opção de fechar div.
obrigado
Oi gente, eu sou leiga no assunto, alguém pode me ajudar a fazer isso no blogger? Fico dando erro na hora de salvar o html, enfim, podem me ajudar?
Obrigada!
Olá, gostaria de saber se tem como colocar o efeito pra deslizar ao contrário… quando clica pra abrir, ele abre deslizando pra baixo, gostaria de saber se tem como ele abrir deslizando pra cima.
Excelente artigo. Só uma curiosidade. Como fazer para que o texto apareça ao lado, não na parte de baixo?
Parabéns.
Estou com dificuldades em instalar, se me puderem ajudar agrdeço!
Ele não aceita o + nem o – no lugar de mostrar e esconder pq??
Simples e funcional.
Muito bom! Parabens
Estou com uma dulvida… como eu consigo criar varios toggle dinamicamente com o php mysql?
Parabéns Maujor mto boa postagem!
eu estava procurando algo parecido e sem querer acabei encontrando!
Resposta para galera que perguntou como modificar o conteudo que está dentro da que é “Mostra conteúdo”
O Maujor colocou uma unica classe chamada class=”tg1″, certo!
Com faço para cada um do mostra conteúdo ser diferente?
Isso no html:
class=”tg1″
class=”tg2″
e assim por diante.
No JavaScript:
$(‘.tgl’).before(‘mostra conteudo 1’);
$(‘.tgl’).css(‘display’, ‘none’)
$(‘.tg2’).before(‘ mostra conteudo 2’);
$(‘.tg2’).css(‘display’, ‘none’)
Era só ter um pouco de conhecimento em JS.
Abração e espero te ajudado!
Mto massa esse efeito! Testei e funciona.
Porém, assim como o Victor (post 15), ao alterar as chaves revelar/esconder conteúdo por +/-, apenas a posição + (revelar) é mostrada. Ao passo que se eu trocar por “mais” ( como revelar) e “-” (para esconder) funciona e o inverso, não.
Alguém pode me ajudar?
Obrigada!
Muito bom, gostei muito das suas explicações,
mas eu gostaria de saber como faço para substituir o revelar conteudo/esconder conteudo por imagens diferentes em divs tgl , pois tentei mais nao consegui…Obrigado
salvou minha vida 😀
Amigo tenho 2 dúvidas:
1. Como faço para mudar o texto “Revelar Conteúdo” pelo nome do tópico que eu quiser, colocando nomes diferentes para cada tópico clicável que mostra o resto do texto ?
2. Quando posiciono o mouse sobre o texto “Revelar Conteúdo” ele fica como cursor de texto. Gostaria de saber o que devo mudar no código para que apareça a seta do mouse ou para a mãozinha ?
Aguardo resposta, obrigado !
Muito bacana mesmo cara, show de bola, com isso podems as paginas de artigos dos clientes ficam muito mais facil de fazer, nós programadores ganhams muito trempo…..
Pó fico maneiro! Estava pesquisando sobre isso, mas não sabia muito bem como pesquisar, até que achei seu site. Continuarei navegando em seu site! Vlz!
Caro Mestre Maujor, gostaria que, se possível, pudesse me ajudar com um problema que tive a respeito do Toggle. Fiz algumas modificações, e quando clica nos outros links, eles não fecham como o primeiro. Se puder dar uma olhada, e me ajudar, agradeceria muito. Aki vai o link do site, ainda em construção:
http://www.franconalimadvogados.com.br/areas.htm
Abraços,
João Lucas
Bom dia a todos!
Eu preciso de um help aqui, tenho um efeito desses no site, no menu do usuário, só que eu preciso colocar um uma seta pra baixo indicando que o usuário deve clicar ali e quando essa botão é pressionado a seta deve mudar de posição, pra cima.
Eu sei que tenho que ter duas imagens e etc.. Só que, onde eu vou colocar as duas imagens??? Preciso disso urgente!
Agradeço desde já!
O comentário acima não aceitou HTML.
Mas vou tentar de outro modo:
Mude <div id="box-toggle"> por <div class="box-toggle">
E depois faça os ajustes no Script
José Dayam, dá sim, ao invés de usar “id”, use “class”, faça assim:
Mude para ;
Em seguida, altere os valores do JavaScript, na linha NOVE,
altere $(‘span’, ‘#box-toggle’).click(function() {
por
$(‘span’, ‘.box-toggle’).click(function() {
Agora você pode utilizar em vários cantos de seu blog WordPress 😀
Espero ter ajudado.
Olá, tenho uma dúvida, nesse exemplo, se eu quiser modificar a linha 7 ” $(‘.tgl’).before(‘Revelar conteúdo’); ” p/ que ele não venha com o valor “Revelar conteúdo” e sim o valor de h2 ” Conteúdo um ” e o h2 sendo o link que irá exibir e esconder o contúdo. Como ficaria?
Ola. tudo bem? muito legal esse codigo, mais tipo pq no IE8 quando eu clico para ocultar ele dá uma desconfigurada no espaçamento?
abraços!
existe algum plugin q faço isso pro wordpress?
eu n sei programar, queria encontrar um plugin que fizesse isso.
Bem, desde ja agradeço!
ola! como eu faria se eu quisesse exibir tipo as 3 primeiras linhas de um texto, colocar um botao/link “leia mais” e ao clicar a pessoa leria as restantes das linhas do texto?!
algume teria alguma ideia
Olá, gostaria de saber como faço para alterar o título onde está escrito
Revelar conteúdo.
Exemplo:
Gostaria que aparecesse.
contato
portfólio
agenda
assim abriria o conteúdo específico de cada link.
Desde já obrigado
Olá, estou com a mesma dúvida da jaimi (2009 – 11 – 17 11:39)
assim existe, como faço para que ao invés de aparecer
mostrar conteudo
mostrar conteudo
mostrar conteudo
—– aparecer
mostrar meus arquivos
mostrar meus projetos
mostra meus desenhos
aguardo
Galera, dúvida que eu não consegui descobrir como fazer, e nem sei se é possível.
Mas utilizando a função “toggle”, para esconder e mostrar um conteúdo, é possível eu iniciar uma página com um formulário escondido, eu inicio a função toggle para mostrar esse formulário, ocorre um refresh na página, por exemplo, e gostaria que esse formulário continuasse aberto após a página ser carregada, ou seja, eu queria que fosse matido o estado anterior do form após o refresh da página, tem jeito?
Sinceramente não acho que deve usar este script. Ele é elegante, mas causa ERROS no site e isso é facilmente percebido por qualquer leigo que usa Internet Explorer. Veja no rodapé desta a síntase – ERRO NA PÁGINA
Consegui resolver com tabelas dinamicas agora so receber os dados em json.
obrigado
Bom exemplo mas.
Tenho um problema pra resolver com esse efeito de jquery. Seguinte.
Eu recebo um objeto json:
{setores:{setA:[01,07,09],setB:[12,03,14,15],setC:[32,12]}}
Preciso a partir desse exemplo de json gerar um funçao que crie uma tabela e cada setor será a chave “exibe/oculta”. Crio outra funcao que ira exibir os codigos do setor em linhas.
————————
[+] SetA
[-] SetB
12
03
….
————————-
Esse json vem de uma consulta php no mysql e convertido em json para uma variavel objeto no javascript.
Se eu conseguir resolver eu posto aqui.
Obrigado
Porque eu só consigo usar um por página?
por exemplo, uso o wordpress, e queria usar em todas as postagens esse método, tem como?
Muito bom exemplo, sem contar que jquery é quase indispensavel no desenvolvimento agil.
Esse efeito ai eu uso com frequencia em algumas areas dos sites que faço, bacana.
tentei fazer e não funcionou no firefox 3.5 e nem no ie 8, estou usando o windows 7, outros scripts js funcionam normalmente, o que pode ser?
Tem como colocar “n” funções, tipo, se eu coloco mais de um na mesma pagina da erro, eu gostaria de expandir para quantas vezes fosse necessario.
:-(( fiquei 100 ação/resposta :-))
Tem como o “conteúdo um” já aparecer aberto?
Olá, Maujor!
Muito bom este script, super mão na roda!
Porém, no IE6 não funcionou… =(
O que será que está errado?
Tks!
ROBERTO, a minha dúvida é a seguinte:
———-
—– assim existe, como faço para que ao invés de aparecer
mostrar conteudo
mostrar conteudo
mostrar conteudo
—– aparecer
mostrar meus arquivos
mostrar meus projetos
mostra meus desenhos
agradecido uma vez mais (1*+)
aguardo
ola jovem !! queria saber como esconder marcador e arquivo ?
uso a funcao mostrar tudo e a mostrar oculto fonciona +++ nao serve os como link eles egistem + nao aparece exp:.blogspot.com/search/label/cafe
PARABÊNS, muito bom !!!
Uma dúvida apenas.
Como faço para alterar o conteúdo do ?
por exemplo:
(mostrar/alterar) meus arquivos
(mostrar/alterar) meus projetos
(mostrar/alterar) meus desenhos
Agradecido e aguardo contato.
Olá Sr. Maujor…
Estou tentando utilizar esse exemplo do blog com shadow box para mostrar e ocultar as divs que contém os Tumbs da galeria…porém quando faço com que o shadow funcione o jquery para de funcionar pode me ajudar?
Achei seu blog através do google, procurando por jquery.
Seu blog é muito bacana e informativo.
Queria que você me ajudasse numa questão que deve ser
extremamente simples para você, mas que para mim já custou
dias de pesquisas e até hoje não encontrei a solução.
Estou criando esse site:
http://www.alexandre-oliveira.com/testes/oralgraf/
e no link “PRODUTOS” gostaria que fosse exatamente
igual ao link “VEJA TODOS OS 38 DEPARTAMENTOS”,
do site “AMERICANAS.COM”. Consegui chegar próximo
com jquery, mas quando eu tiro o mouse de cima do link
“PRODUTOS” a div some e eu preciso que ela se comporte
como no site da Americanas. Essa div não pode sumir
porque terá outros links e informações dentro dela.
Se você puder me ajudar ou dar alguma ideia eu ficaria
muito agradecido.
Obrigado
Dessa forma o this.html() nulo não aparece.
jQuery.fn.toggleText = function(a,b) {
if (this.html() != null) {
return this.html(this.html().replace(new RegExp("("+a+"|"+b+")"),function {return(x==a)?b:a;}));
}
}
😉
tem mais um probleminha. No IE. aparece sempre a notificação de erro na página, mais especificamente desta forma
Detalhes dos erros da página da Web
Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB5; SIMBAR={8EEDD465-056D-4D32-A58D-DB1F6001233B}; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; InfoPath.2; WWTClient2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)
Carimbo de data/hora: Thu, 17 Sep 2009 20:20:06 UTC
Mensagem: ‘this.html()’ é nulo ou não é um objeto
Linha: 26
Caractere: 1
Código: 0
URI: http://www.maujor.com/blog/pg_apoio/jquery-toggle-texto-exemplo.html
Teria alguma forma de se resolver isto
abraços
EXELENTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Só uma dúvida como altero a palavra ou símbolo que serve para ocultar o texto, pq, quando eu altero alguma destas palavras ou um destes símbolos, só aparece, o de revelar texto, como soluciono?
@Ricardo
A sintaxe para uso de
live
é a seguinte:$('span', '#box-toggle').live('click', function() {
$(this).next().slideToggle('slow')
...
});
Olá eu gostaria de saber como fazer o toggle com o live poi eu crio uma div com jquery e esta função de toggle em um link no meio da div..
exemplo, eu crio atraves do jquery o seguinte:
Usra o Toggle
ai eu crio uma função jquery q pega o id taltal e quando clicka aparece algo e quando clickar aparece ou esconde algo…
Ai é que está o problema… se o “Usra o Toggle” ja estiver criado quando carrega a pagina ele funciona só q se for criado depois ele não funciona mais..
correção: Usar a função live, porem alguem sabe fazer isso pra toggle?
Abraços
Ola, se eu clicar no botao varias vezes seguidas antes de terminar a animacao ele vai continuar fazendo ate terminar a quantidade de cliques que eu dei, tem como travar o botao ou uma tag “a” ate a animacao completar?
valeu
Estou tentando colocar este codigo no meu site estou usando wordpress, faço tudo certo clico em visualizar e funciona mais na hora que publico a pagina ele nao funciona mais, percebi que se colocar o perma link como “default” o codigo funciona mais quando coloco como “day and name”, o codigo passa a nao funcionar, sera que alguem pode me ajudar obrigado!!!!!
Baah.. muito show o tutorial!!!
Testei aqui e funciona as mil maravilhas!! ^^
Já coloquei no site e tudo mais..
Muito Obrigada o/
E ae , muito bom estava pesquisando esse evento e no seu tutorial tive a explicação , porém surgiu um dúvida.Estou criando um sistema web, e minha intenção seria no momento eu que eu click no botão, aparece um formulário de cadastro. dentro desse formulário, tb teria abas onde eu clik e aparece e esconde outro formulário de cadastro.
Seria possivel usar essa tecnica, para tal resultado?
agradeço e aguardo
@ Diego Marques
Vi o mesmo problema no firefox 3 e nos IEs 6 e 7.
A diferença é que nos IEs o “pulo” ocorre proximo ao h2 pois apos clicar em “revelar conteudo” o h2 está colado no texto “revelar conteudo” e depois ocorre o pulo criando a sua margem.
Já no Firefox o “pulo” ocorre na parte inferior entre o final do paragrafo eo próximo “revelar conteudo”.
Porém também queria saber como resolver o problema.
Ola eu testei tbm e deu um erro:
Erro: this.html() is null
Arquivo-fonte: http://www.maujor.com/blog/pg_apoio/jquery-toggle-texto-exemplo.html
Linha: 26
ja pesquisei mas nao encontrei nada de como resolver isso, alguem sabe?
Muito bom o artigo!
Gostei muito, principalmente por usar jQuery! Continue por favor 🙂
Muito bacana o recurso, já vou utilizá-lo em projetos.
Muito bom este tutorial, parabens.
Só um detalhe, na animação de quando abre, no final ele dá um pulo, pelo menos onde eu testei que foi no firefox 3.5 e no chrome.
Como resolver isto?
Muito bom mesmo 🙂
Show de bola!!!!!
muito interessante, legal mesmo esta função….tanto que o dream cs3 já vem com códigos jQuery, inclusive esse!