DaviMelo Postado Janeiro 24, 2010 Denunciar Share Postado Janeiro 24, 2010 Gostaria de ter um texto aleatório ao clicar sem atualizar a página. O código abaixo faz o que eu quero mas só com dois texto. Eu queria com 250. Será que é possível?<script> function troca(id,valor) { var insere = document.getElementById(id); if(valor == "Check") { insere.innerHTML = '<a href="#" onclick=troca("link_check","Unheck");>Menssagem 1</a>'; } else { insere.innerHTML = '<a href="#" onclick=troca("link_check","Check");>Menssagem 2</a>'; } } </script> <div id="link_check"><a href="#" onclick="troca('link_check','Check');">Menssagem 1</a></div> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KaKarotto Postado Janeiro 24, 2010 Denunciar Share Postado Janeiro 24, 2010 Davi, não entendi direito o que você quer.Você quer apenas um link na página, porém esse link ao ser clicado, mudará seu conteúdo para 1 dos 250 tipos de mensagens, só na hora em que for clicado. Certo ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaviMelo Postado Janeiro 25, 2010 Autor Denunciar Share Postado Janeiro 25, 2010 Certo! Sendo que a mudança deve ser aleatória. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Janeiro 25, 2010 Denunciar Share Postado Janeiro 25, 2010 Nesse caso esse código que você tem não vai ser muito útil.Tente criar um array com várias mensagens e gerar um número aleatório. Para gerar o número aleatório você pode aproveitar essa classe que o Eduardo postou: Objeto RandomO código Javascript pode ficar mais ou menos assim:function Mensagem(){ mensagens = [ "Mensagem 1", "Mensagem 2", "Mensagem 3", "Quarta mensagem", "Mensagem 5" ] this.innerHTML=mensagens[Random.get(mensagens.length)] } E o HTML: <a href="#" onclick="Mensagem()">Clique para colocar a primeira mensagem</a>Se funcionar posta aqui. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaviMelo Postado Janeiro 25, 2010 Autor Denunciar Share Postado Janeiro 25, 2010 Puxa, Não funcionou. Aparece o seguinte erro:Linha: 19Erro: 'Random' não está definidoA linha 19 é essa:this.innerHTML=mensagens[Random.get(mensagens.length)] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Janeiro 25, 2010 Denunciar Share Postado Janeiro 25, 2010 Você vai ter que colocar a classe do Eduardo no seu código também. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaviMelo Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 Desculpe mas eu não sei como fazer isso. Poderia colocar o código já com essa classe pra funcionar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 Basta copiar o código que o Eduardo postou e inserir. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaviMelo Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 Fiz como você disse, o erro sumiu, mas não acontece nada, ou seja, não muda o texto. Veja o código abaixo:<HTML><HEAD></HEAD><BODY> <script> /* * Desenvolvido por: Eduardo Ottaviani * Licença : Pública * Email : edu.tata@gmail.com * Obs : Métodos com underscore são métodos usados internamente pelo objeto Random, use-os apenas se entender o seu funcionamento. * Url : [url=http://scriptbrasil.com.br/forum/index.php?showtopic=145754]http://scriptbrasil.com.br/forum/index.php?showtopic=145754[/url] */ var Random = { _run_ : function(range){ return Math.floor(Math.random() * range) }, _aux_: { cont : 0 }, pick : function(range){ if( this._aux_.cont ++ >= range ) return null var out = this._run_(range) while(out in this._aux_) out = this._run_(range) this._aux_[out] = null return out }, reset : function(){ this._aux_ = {cont:0} }, get : function(range){ return this._run_(range) }, color : function(){ var hexa = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f"] var ret = "#" for (var x = 0; x < 6; x++) ret += hexa[ this.get( hexa.length ) ] return ret } } function Mensagem(){ mensagens = [ "Mensagem 1", "Mensagem 2", "Mensagem 3", "Quarta mensagem", "Mensagem 5" ] this.innerHTML=mensagens[Random.get(mensagens.length)] } </script> <div><a href="#" onclick="Mensagem()">Clique para colocar a primeira mensagem</a></div> </BODY></HTML> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 Troque a função Mensagem para ficar assim:function Mensagem(elemento) { mensagens = [ "Mensagem 1", "Mensagem 2", "Mensagem 3", "Quarta mensagem", "Mensagem 5" ] elemento.innerHTML = mensagens[Random.get(mensagens.length)] } E deixe o código HTML assim: <a href="#" onclick="Mensagem(this)">Clique para colocar a primeira mensagem</a> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaviMelo Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 Ok. Funcionou! Muito obrigado!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 De nada. Qualquer coisa posta aí !Obs.:O tópico foi marcado como Resolvido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DaviMelo
Gostaria de ter um texto aleatório ao clicar sem atualizar a página. O código abaixo faz o que eu quero mas só com dois texto. Eu queria com 250. Será que é possível?
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.