Ir para conteúdo
Fórum Script Brasil

KaKarotto

Vencedores de desafio
  • Total de itens

    1.243
  • Registro em

  • Última visita

Posts postados por KaKarotto

  1. Thaís tudo bem?

    A minha intenção não era complicar rsrs.

    Vou tentar responder de acordo com o que eu entendi suas perguntas.

    Teria como eu linkar as cidades abrindo uma janela em blank popup para as cidades especificas?

    Teria. Eu dei apenas um exemplo, abrindo na mesma tela. Você pode usar o window.open para abrir o endereço em uma janela pop up.

    Tem que pegar o valor passado pela querystring na sua página cidade.htm???????????????

    Tem, caso sua página for igual para todas as cidades e apenas algumas coisas forem dinamicas. O ideal na verdade é que seja uma página para todas as cidades e fazer as suas diferenças nela, através de alguma linguagem de servidor, como php, java, .net etc.

    Nesse caso ele busca somente uma pagina a cidade.htm!

    não estou conseguindo que cada cidade abra uma pagina especifica!

    Eu não sei se entendi direito o que você quer com essa página específica.

    Eu entendi que você tem tipo várias páginas html, tipo saopaulo.html, riodejaneiro.html etc... o que é uma besteira, mas caso tenha feito dessa forma, basta usar a variavel que guarda o valor do select que o usuário escolheu para direcionar o gaiato para onde você quer.

    var de_para = {
        'Viçosa' :'vicosa',
        'São Paulo':'saopaulo'
        //Etc
    }
    
    cidade.onchange = function(){
        var valor = cidade.value
            valor = de_para[ valor ]
        window.open( valor+'.htm' ,'_blank' )
    }

    Usei aquele json "de_para" porque sua página html não tem acentos e espaços. O json seria enorme para todas as cidades que existem, então uma solução bem mais elegante seria usar regex para tirar espaços em branco e acentos do valor da cidade...

    Mas vai complicar mais e não tenho certeza de que entendi direito o que pretende fazer...

    Se tiver a sua aplicação rolando em alguma url, passa por que daí dá pra ter uma idéia melhor do que pretende fazer.

    Pra mim está muito abstrato.

    []´s

  2. Cara Thaís, eu fiz um exemplo aqui pra vc, dá uma olhada:

    index.htm

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>New Web Project</title>
        </head>
        <body>
        
            <select id="estado"></select>
            <select id="cidade"></select>
        
            <script type="text/javascript" src="http://cidades-estados-js.googlecode.com/files/cidades-estados-v0.2.js"></script> 
            <script type="text/javascript">
                window.onload = function() {
                    
                    var estado = document.getElementById('estado')
                    var cidade = document.getElementById('cidade')
                    
                    new dgCidadesEstados( estado, cidade, true )
                    
                    cidade.onchange = function(){
                        location.href = 'cidade.htm#cidade=' + cidade.value
                    }
                    
                }
            </script>
        </body>
    </html>
    cidade.htm
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>New Web Project</title>
        </head>
        <body>
            <script type="text/javascript">
                window.onload = function() {
                    
                    var hash = location.hash.match(/\w*=(.*)/)
                    alert(hash.pop())
                    
                }
            </script>
        </body>
    </html>

    Tem que pegar o valor passado pela querystring na sua página cidade.htm. Há duas formas de se passar variáveis de uma página à outra, por cookies ou por querystrings.

    Neste exemplo utilizei querystrings. Usei regex para pegar o valor da cidade, mas existe aqui no fórum na sessão de scripts prontos uma função para pegar valores de querystrings.

    []'s

  3. Thaís, é só adicionar mais eventos ao select de cidade.

    var cidade = document.getElementById('select-cidade')
    var change = cidade.onchange || function(){}
    cidade.onchange = function(){
    change.call(this)
    location.href = 'pagina.htm?cidade=' + this.options[this.selectedIndex].value
    }

    Tipo isso, se usa jQuery fica bem mais bonito o código, porque não utilizei addEventListener ali...

    []'s

  4. O que acontece é que você está usando variáveis globais em seu script, portanto, colocando várias vezes o código na página, um vai sobrescrever o outro.

    O que precisa fazer é encapsular estes dados em uma função para usar variáveis privadas ao invés de globais.

    O que esse código faz ?

    Acho que o script que pegou não é um bom script, aconselharia a procurar outro que tenha o mesmo propósito.

    []'s

  5. Não seria em Java, talvez em Javascript que é outra coisa. Java não tem nada haver com javascript à não ser o "Java" no começo do nome.

    Mas isso é feito via server-side, usando javascript e no próprio html.

    A tag do link tem uma propriedade chamada "title". Nesta propriedade você bota o texto que quer.

    Como a quantidade de link é dinâmica, o que você precisa fazer é criar um evento em javascript que faça uma requisição para o seu server enviando que um evento de click foi acionado, então você deve usar a sua linguagem server-side, tipo php, .net ou o que seja para gravar num banco de dados, para que este dado possa ser acessado ao carregar a página e printar no html a quantidade de cliques.

    Minha dica é perguntar para o povo do server-side, como fazer para gravar esses dados e depois voltar aqui com seu método funcionando, para chamá-lo através do javascript.

    Abraço.

  6. Galera, quanto tempo ^_^ .

    Bom eu acabei de postar no meu blog um código para fazer paginação em javascript.

    Se alguém precisar algum dia, está lá.

    Vou fazer um jabá aqui e postar apenas o link do artigo, para quem se interessar, não vou postar o código ou explicar aqui porque não quero ter que refazer o post de novo. -_-

    Então aqui será apenas para dúvidas, críticas ou sugestões, bele?

    http://javiani.wordpress.com/2010/08/22/pa...script-parte-1/

    Akeleabraço.

  7. O que acontece no seu código é que você faz uma nova instancia da classe, mas não armazena ela numa variável.

    No segundo new Teste.class, essa chamada se perde, você não armazena em nenhuma variável. Depois você pergunta de novo qual o valor da variavel t e recebe claro o mesmo resultado de antes.

    Ahh... bota esse class com C maiúsculo, porque .class é palavra reservada no javascript.

  8. Na verdade é o contrário, é quando se muda de 1024 para 800 que o banner desaparece.

    Neste site em particular foi feita uma técnica em css chamada position:fixed, onde você posiciona um elemento de forma fixa em qualquer lugar da página.

    No entanto esta técnica não funciona no ie6, eles usaram um script para isso.

    Mas se procurar por position fixed ie6 vai achar vários work-arounds sobre o assunto, é possível conseguir o mesmo efeito no ie6 usando position absoulte e algumas gambiarras a mais no css.

    Procura por esse termo no google, se não entender os exemplos da internet, posta aqui de novo que a gente mostra um exemplo.

    Abraço. ^_^

  9. É uma pena...

    Eu imaginava também que isso ia acontecer uma hora ou outra.

    Faço minha as palavras do Marcos.

    O Script Brasil acaba de perder um braço esquerdo.

    Queria aproveitar essa notícia para também me despedir previamente do povo.

    Por que pelos mesmos motivos da Andreia não poderei mais exercer o cargo de moderação.

    Já fazia tempo que não venho desempenhando meu papel e injustamente venho segurando este posto no fórum.

    Dada a falta de moderadores, pretendo me renunciar assim que achar alguém para me substituir nos fóruns de Js e Html, para ajudar o Fernandão e o Thelon.

    Vlw Andreia, por tudo mesmo, um grande abraço chefe.

  10. $, ou dólar, é apenas um nome.

    Na verdade o objeto jQuery tem uma variável que chama jQuery. Mas para facilitar, foi criada uma variável com nome mais curto como o dólar.

    A idéia de usar o dólar, é que é um dos poucos símbolos válidos que você pode digitar direto do teclado sem fazer alt+ alguma coisa. Uma vantagem que existia antigamente é que ninguém usava esse simbolo por não saber que era válido, então os primeiros frameworks utilizavam para garantir que não houvesse conflito com qualquer outro trecho de código.

    Só que agora todos usam. rsrsrs.

    Na verdade é apenas um "alias" pra facilitar na hora de chamar a função jQuery.

  11. Pelo jeito que disse aí em cima, o flickr executa uma função de retorno do json.

    Então basta criar uma função de mesmo nome e definir como quer passear no objeto.

    function jsonFlickrApi(data){
        for (var x = 0; x < data.photo.length; x++) {
            data.photo[x].id
            data.photo[x].secret
            data.photo[x].server
            data.photo[x].farm
        }
    }

    Acima você consegue pegar todos os atributos de "photos" já que é um array de objetos.

    O resto acho que você consegue ^_^

    Qualquer dúvida ou problema é só postar.

  12. Static é uma variável que não muda conforme novas instâncias. Ou seja, é uma variável de classe e não uma variável de instância.

    var Pessoa = {
        contador : 0,
        Class : function(){
            Pessoa.contador ++
            this.nome = "Edu"
        }
    }

    Na classe pessoa, eu tenho a variável static contador. Você sempre pode alterá-la acessando diretamente por Pessoa.contador.

    Dessa forma, você tem uma classe e uma variável de classe. Class é uma variável static também, só que eu utilizo para servir de construtor para o objeto.

  13. throw interrompe imediatamente o fluxo do javascript, gerando um erro. Você pode passar uma string detalhando o erro ou gerando um novo objeto do tipo Erro como eu fiz. É usado para gerar um erro de maneira proposital, porém, ele tem a vantagem de ser mais específico.

    Já deve ter acontecido com você de montar vários métodos, vários objetos e no decorrer da execução o script quebra, dando um erro dizendo que tal objeto é undefined.

    Muitas vezes você consegue rapidamente saber o que acontece. Outras vezes é difícil depurar.

    No caso do throw, se você o utiliza usando uma mensagem mais amigável, facilita para outro programador saber onde está o problema.

    No caso da nossa interface, se o programador tentar envocar um método que teóricamente existe na interface sem o sobreescrever, ele gera um erro, dizendo que aquele método existe, porém é necessário ser sobrescrito.

    Que bom que pensa assim, não se deve apenas seguir as coisas por seguir. Seja criativo, leia diversas fontes e mais importante que isso, as conteste.

    Abraço ;)

    ps: Curti o trocadilho! huahuahauhauahu

  14. Só não entendi uma coisa, você implementou o método na interface, a interface não deveria conter só o esqueleto? Ou seja, o método acelerar e freiar não deveria ser implementado em carro e moto?

    Boa pergunta.

    Nas linguagens fortemente tipadas as interfaces são implementadas assim. Na verdade o conceito de interface foi criado a partir dessas linguagens.

    Mas se formos pensar, há muito mais vantagem de se utilizar a interface em javascript do que nessas outras linguagens.

    Oras, qual o grande reuso de código que tem se apenas definir o protótipo da função e ter que reescrevê-las em todas as classes filhas ?!??!?!

    Você consegue reestringir o programador e consegue criar classes de forma um pouco mais dinâmica, e só.

    No javascript você consegue estender esse propósito fazendo com que de certa forma, se aquela classe implementa uma interface, ela já consegue usar os métodos sem que fosse necessário reescrevê-los toda hora.

    Você poderia reproduzir a idéia de interface de forma um pouco mais fiel fazendo isso :

    Interface = {
        motor : function(velocidade){
            this.acelerar = function(){ throw new Error("implemente o método acelerar") }
            this.frear = function(){ throw new Error("implemente o método frear") }
            this.velocidade = function(){ throw new Error("implemente o método velocidade") }
        }
    }

    Ou seja, você força a utilização dos métodos na chamada da interface e ao mesmo tempo diz para o programador implementar o método se chamar internamente em algum método dessa classe, enviando exatamente o erro.

    Mas aí você estaria restringindo e forçando uma inflexibilidade que não é a característica da linguagem.

    Na minha opinião, a interface é muito melhor utilizada em javascript.

  15. Só complementando, eu apenas utilizei os var nos nomes das classes porque é uma boa prática. Elas vão ser globais porque estão no contexto global, mas eu utilizo var pra dizer que as variáveis estão iniciando naquele ponto, e não estou simplesmente sobrescrevendo a variável.

    A explicação do Jonathan foi perfeita, eu não conseguiria fazer melhor.

    E mostra o quão complicado é a lógica de um paradigma funcional e prototipal como a do javascript.

    Os closures e os escopos podem causar um tilt no cérebro fácil fácil se não estiver acostumado com a linguagem.

    Rafael, no caso de Javascript, Interfaces são simuladas de forma muito mais funcional do que nas linguagens clássicas orientadas à objetos. Então para a maioria dos problemas, não é necessário reproduzir certas coisas de forma tão fiel.

    Uma classe abstrata é um tipo de objeto não instanciável, se precisa reutilizar os seus métodos, deve fazer uma herança apenas se sua classe for do tipo da classe abstrata.

    Se ela não for do mesmo tipo da classe abstrata, não há necessidade de fazer essa herança e de implementar uma classe abstrata, basta usar as interfaces da forma como mostrei, assim você consegue o reuso, sem fazer heranças desnecessárias, ou criar classes apenas para conseguir reproduzir a herança de métodos abstratos.

    Lembre-se que uma classe abstrata não pode ser instanciável, o que nos leva à outro problema, como fazer isso em javascript?

    Eu sei uma forma, mas duvido que esteja usando sua classe de forma que ela seja realmente abstrata. Se tiver difícil a compreensão, poste o código, porque aí podemos rebater nele as dúvidas.

    Bele? Abraço. ^_^

×
×
  • Criar Novo...