
Jonathan Queiroz
Membros-
Total de itens
3.718 -
Registro em
-
Última visita
Tudo que Jonathan Queiroz postou
-
(Resolvido) Dúvida sobre escopo do prototype
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Não precisa, mas em alguns casos pode ser interessante criar um método "padrão" na interface e, em casos específicos, sobrecarregá-lo em determinada classe. -
(Resolvido) Dúvida sobre escopo do prototype
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
O que seria "Veículo" ? Seria outra interface ? -
(Resolvido) Dúvida sobre escopo do prototype
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Entendi. Como é sobrecarregar o método para apenas uma classe, você pode utilizar o código que postei no post #2. -
(Resolvido) Dúvida sobre escopo do prototype
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Nesse caso nem funcionaria, pois não dá pra modificar um método que já foi criado. Se você quer sobrecarregar um método, tente fazer como eu falei. Ou o objetivo é realmente modificar a ação do método em todas as classes ? -
(Resolvido) Dúvida sobre escopo do prototype
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Supondo que o prototype fosse aplicado aí, ele iria valor para TODAS as classes que utilizam a interface, ou seja, se você tivesse uma classe "Moto" que utilizasse a interface "Motor", o método "acelerar" estaria igual ao que foi setado na classe "Carro". Mas ele não é aplicado pelos seguintes motivos: O prototype pode inserir métodos, mas não alterarFaltou o "=function()" aliSe o que você quer é implementar o método acelerar derivado da interface Motor na classe Carro (e somente nessa classe), pode fazer assim: function Carro() { Motor.Interface.call(this) //implementação do método acelerar da interface motor this.acelerar=function(valor) { return valor += 10 } } Creio que deve funcionar. Qualquer coisa posta aí ! -
Texto aleatório ao clicar
pergunta respondeu ao DaviMelo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
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> -
(Resolvido) Maiúscula para minúscula e vice versa
pergunta respondeu ao mls de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
O Alexandre deixou a função pronta... Use a que ele fez (mas troque o string[indice] para string.charAt(indice)) -
(Offtopic) Para que serve o cast() em js?
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Seria sobre a conversão de tipos (por exemplo, float para int, string para float, etc.) ? Se for sobre alguma função "cast()", eu nunca ouvi falar... -
Texto aleatório ao clicar
pergunta respondeu ao DaviMelo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Basta copiar o código que o Eduardo postou e inserir. -
Texto aleatório ao clicar
pergunta respondeu ao DaviMelo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Você vai ter que colocar a classe do Eduardo no seu código também. -
(Resolvido) Geração de XML, não funciona como o esperado
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em PHP
Só está mostrando o código da "última pessoa", é isso ? Se for isso, veja essa linha: $xml = "\n<pessoa>\n"; Você está zerando a variável nessa linha. -
Texto aleatório ao clicar
pergunta respondeu ao DaviMelo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
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 Random O 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. -
A explicação do Kakarotto foi excelente ! Só faltou citar que é possível utilizar try e catch para capturar as exceções. Quando vi que o Eduardo tinha postado, já havia terminado meu post... Então vai assim mesmo. O throw serve pra lançar uma exceção, que pode ser recuperada depois. É utilizado para separar o tratamento de erros no código. Por exemplo, observe esse código: function PedeInteiros_E_Divide() { //Função para auxiliar a validação var valida = function (numero, pode_ser_nulo) { if (numero == "") { alert("Digite algo !") return null //se é inválido, retorna null }else if (isNaN(numero)) { alert("O valor digitado deve ser numérico") return null //se é inválido, retorna null } else if (numero != parseInt(numero)) { alert("O valor digitado deve ser inteiro") return null //se é inválido, retorna null } else if (numero == 0 && !pode_ser_nulo) { alert("O valor digitado não pode ser nulo") return null //se é inválido, retorna null } return numero //Se é válido, retorna o próprio número } //Primeiro número var num1 = valida(prompt("Digite um número inteiro:"),true) if (num1==null) { return null //indica que houve um erro retornando "null" } //Segundo número var num2 = valida(prompt("Digite um número inteiro não-nulo:"),false) if (num2 == null) { return null //indica que houve um erro retornando "null" } //Divide os dois return num1/num2 } function teste() { while (1) { var result = PedeInteiros_E_Divide() if (result == null) { alert("Vamos tentar de novo !\nVê se não erra mais...") } else { alert("O resultado da divisão dos números é: " + result) break; } } } A validação está muito complicada. Poderíamos deixar mais simples. Observe o código melhorado: function PedeInteiros_E_Divide() { //Função para auxiliar a validação var valida = function (numero, pode_ser_nulo) { if (numero == "") { throw "Digite algo !" } else if (numero == null) { throw "Dê OK ao invés de CANCEL" }else if (isNaN(numero)) { throw "O valor digitado deve ser numérico" } else if (numero != parseInt(numero)) { throw "O valor digitado deve ser inteiro" } else if (numero == 0 && !pode_ser_nulo) { throw "O valor digitado não pode ser nulo" } return numero //Se é válido, retorna o próprio número } //Primeiro número var num1 = valida(prompt("Digite um número inteiro:"),true) //Segundo número var num2 = valida(prompt("Digite um número inteiro não-nulo:"),false) //Divide os dois return num1/num2 } function teste() { while (1) { try { alert("O resultado da divisão dos números é: " + PedeInteiros_E_Divide()) break; } catch (erro) { alert(erro + "\n\nVamos tentar de novo !\nVê se não erra mais !") } } } Bem mais simples, e o tratamento do erro está separado da parte funcional. Qualquer coisa posta aí ! Obs.: Aquela função valida ali foi só pra não repetir o código pros dois números.
-
A forma de declarar com o "classe : {nome1:valor1,nome2:valor2}" é apenas questão de gosto (está relacionada a JSON) É o mesmo que: classe=function(){ this.nome1=valor1 this.nome2=valor2 this.metodo1=function(){ alert("bom dia") } }É possível fazer o mesmo de várias formas diferentes. Sim, exatamente. Como em JS não existe uma maneira formal de declarar atributos/métodos privados utiliza-se o "var" para definir o escopo. Sim. Não há muita diferença entre funções e métodos. É como se funções fossem variáveis (na verdade são) e métodos fossem atributos. Na verdade o this.velocidade (método) é uma coisa e o velocidade (variável local - na verdade um parâmetro da função) é outra. Como já disse, Javascript não implementa formalmente o conceito de atributo privado e é necessário simular isso com variáveis locais, que são independentes dos atributos (inclusive podem ter o mesmo nome, que é o caso). No código do Eduardo, há um método e uma variável com mesmo nome, o que também é possível (métodos são atributos cujo tipo é "function", funções são variáveis cujo tipo é "function"). Aquele método "velocidade" ali só serve pra retornar a variável local "velocidade" (isso foi feito pra simular um atributo readonly, se você quiser pode obter o valor, mas não modificá-lo) Resumo: Naquele código que o Eduardo postou, a classe "Carro" deriva da classe "Interface.motor" de tal maneira que a classe "Interface.motor" possui acesso ao valor da variável privada (e não à própria variável) "velocidade". Isso acontece porque o valor é passado como argumento para a classe base e é utilizado depois. Espero que tenha entendido. Qualquer coisa posta aí !
-
(Resolvido) Maiúscula para minúscula e vice versa
pergunta respondeu ao mls de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Como você está fazendo ? Um exemplo é o seguinte: var antes = "Bom dia !\nTudo bem ?" var depois = reverse(antes) alert(antes + "\n\n\n" + depois) -
Não entendi a dúvida. Pode explicar melhor ? Como está chamando as funções abrir e fechar ?
-
(Resolvido) Diferença de encoding e charset?
tópico respondeu ao Rafael Laurindo de Jonathan Queiroz em Outros Assuntos
Obrigado. -
(Resolvido) Diferença de encoding e charset?
tópico respondeu ao Rafael Laurindo de Jonathan Queiroz em Outros Assuntos
De nada, cara. Qualquer coisa posta aí ! -
Torneio de Programação em Javascript - Quarta fase
tópico respondeu ao Jonathan Queiroz de Jonathan Queiroz em Novidades e Anúncios Script Brasil
Mario, a ideia de um desafio CSS é boa, mas acho que misturar com o de JS não seria boa ideia. Aliás o próprio desafio de JS já dá notas por layout e isso iria complicar a avaliação. Mas sou a favor, sim, de um desafio CSS. O desafio realmente é fácil, creio que o diferencial nas notas será dado pelos extras, criatividade, código limpo, etc. Lucas, para participar basta enviar um e-mail para: desafioscriptbrasil@gmail.com Mas lembre-se de que só poderá enviar o e-mail uma vez. Até agora não recebemos nenhum script, seria interessante que todos os que pretendem enviar participar do torneio postassem aqui para facilitar (não é obrigatório, apenas organização mesmo) -
(Resolvido) Diferença de encoding e charset?
tópico respondeu ao Rafael Laurindo de Jonathan Queiroz em Outros Assuntos
Movendo: Ajax, JavaScript, XML, DOM --> Outros assuntos. À princípio, creio que não haja diferença nenhuma. Aliás encoding, character encoding, character set (charset) são a mesma coisa. Talvez você esteja confuso com o valor Content-Type do protocolo HTTP. Esse valor deve vir no seguinte formato: [tipo_de_arquivo]; charset=[codificação] (exemplo: text/html; charset=UTF-8) -
(Resolvido) Parâmetros do setRequestHeader do Ajax
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
De nada. Qualquer coisa posta aí ! -
(Resolvido) Parâmetros do setRequestHeader do Ajax
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
Nesse caso já não está somente relacionado a AJAX, e sim ao próprio protocolo HTTP. Para ver os parâmetros existentes veja o segundo link do meu psot anterior. Já o setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') é utilizado para enviar dados por POST. -
Movendo: HTML, XHTML, CSS --> Editores. Tente usar o Notepad++.
-
(Resolvido) Parâmetros do setRequestHeader do Ajax
pergunta respondeu ao Rafael Laurindo de Jonathan Queiroz em Ajax, JavaScript, XML, DOM
O que você quer fazer alterando esses headers ? Pode ser mais específico ? De qualquer forma, esses dias estava trabalhando em um software C++ que fazia requisições HTTP por Winsock. Isso aqui me ajudou bastante: http://www.w3.org/Protocols/rfc2616/rfc2616.html Mais especificamente, veja isso: http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3