none
Erro com Jscript RRS feed

  • Pergunta

  • Desculpe, mas tinha aberto como discussão

    Boa tarde,
     
    Eu estou tentando fazer um "show" em uma DIV baseado em um request que estou fazendo da URL, recupero o Id da url e mando exibir a div correspondente mas não funciona. Existe alguma restrição para isso?
     
     function request() {

            var variaveis = location.search.split("?");
            if (variaveis != "") {
                var quebra = variaveis[1].split("=");
                var id = quebra[1];
                $(id).parent().find('div.cases').slideDown(300);

    }

    e no load:
        ScriptManager.RegisterStartupScript(Me, Me.GetType(), "teste", "request()", True)

    Ja fiz direto tentando carregar o javascript no Body do html mas tb nao funcionou


    só um detalhe. Se eu coloco o codigo:  $(id).parent().find('div.cases').slideDown(300); diretamente quando a pagina carrega sem ter que recuperar pela URL ele funciona!!
     
    o problema ta sendo qdo tenta recuperar o URL e ja fiz o teste e ele recupera certinho da URL

    
    
    
    

    Darth Tsurth

    terça-feira, 25 de setembro de 2012 03:56

Respostas

  • A tah!! Entendi...

    kra faz o seguinte... Você vai ter que debugar, no lugar desta linha faz assim:

    //        $(id).parent().find('div.cases').slideDown(300);
    var valida = $(id).parent()[0].innerHTML;

    Confere dentro da variável "Valida" se sua DIV esta realmente dentro dela. 

    outra coisa, este código:

    $(id).parent().find('div.cases');

    Retorna o Length maior que 0 ??

    • Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:22
    terça-feira, 25 de setembro de 2012 15:00
  • Ahhhhh!! Então estamos chegando no problema...

    Acredito que o problema seja o "id" que esta chegando... Não deve estar encontrando nada.

    Veja, a linha abaixo deve estar retornando Length = 0 por isso deu o erro que vc mencionou. 

    Kra, confere esse id que esta chegando.. 

    $(id).parent()


    • Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:22
    quarta-feira, 26 de setembro de 2012 11:09
  • Pode ser que eu não tenha entendido direto ainda... mas vamos ver.

    Se o id que você recuperar é o mesmo que você quer exbir porque você não faz desta forma:

     $(id).slideDown(300);

    Outra dúvida, no momento de exbir a div o seu id esta assim 1 ou assim #1?



    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS



    quarta-feira, 26 de setembro de 2012 13:35
  • Tuco, acho que vc vai ter que fazer desta forma

    $('#1').slideDown(300);


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS


    quarta-feira, 26 de setembro de 2012 13:42
  • Cara é só vc concatenar, algo desta forma:

    var idConcatenado = "#" + id;

    $(idConcatenado).slideDown(300);

    Não sei se está certo a concatenção, mas teóricamente é só concatenar e mandar bala.


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:15
    quarta-feira, 26 de setembro de 2012 14:12

Todas as Respostas

  • E ae cara, blz?

    Duas considerações, olhando para o seu código parece que está faltando fechar a function ou if.

    Você notou se no browser está acusando algum erro de javascript?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    terça-feira, 25 de setembro de 2012 11:44
  • eu acho que isso ta tranquilo, vou te mandar o codigo inteiro

    <script>
        $(document).ready(function () {
            $("#topo a").bind("click", function (event) {
                var $anchor = $(this);
    
                $("html, body").stop().animate({
                    scrollTop: $($("#topo a").attr("href")).offset().top
                }, 200);
    
                event.preventDefault();
            });
            /////CASES
            $('div.cases').hide();
            $('h2.cases').click(function () {
                if ($(this).parent().find('div.cases').is(':hidden')) {
                    $('div.cases').slideUp(300);
                    //$('h2.cases b').aspx("+");
                    //$(this).parent().find('h2.cases b').aspx("-");
                    $(this).parent().find('div.cases').slideDown(300);
                } else {
                    //$(this).parent().find('h2.cases b').aspx("+");
                    $(this).parent().find('div.cases').slideUp(300);
                };
            });
    
        });
    
    
    
        function request() {
    
            var variaveis = location.search.split("?");
            if (variaveis != "") {
                var quebra = variaveis[1].split("=");
                var id = quebra[1];
                $(id).parent().find('div.cases').slideDown(300);
    
            }
        }
    </script>

    ta ai, e no load eu chamo

       ScriptManager.RegisterStartupScript(Me, Me.GetType(), "java", "request()", True)

    
    
    

    Darth Tsurth

    terça-feira, 25 de setembro de 2012 11:47
  • Só uma pergunta, porque vc esta usando isto?

    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "java", "request()", True)

    Você tem algum updatePanel na página?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    terça-feira, 25 de setembro de 2012 11:51
  • na verdade foi um mais um teste que eu fiz pra chamar o javascript....

    mas tb ja coloquei assim direto no html:

    <body onload="javascript:request();">

    
    e não deu certo do mesmo jeito

    Darth Tsurth

    terça-feira, 25 de setembro de 2012 11:53
  • Se você não tem updatePanel na página pode tentar desta forma:

     ClientScript.RegisterStartupScript(GetType(), "java", "request();", true);

    Ja tentou debugar o método?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    terça-feira, 25 de setembro de 2012 11:56
  • ele retornou erro na linha

    tirei o ponto e virgula pois estou usando vb, mas se tiro o "me" ele da erro

    e sim, ja debugui e nao retornou erro, fiz o teste e ele realmente recupera o valor da url sem problemas, só q nao executa


    Darth Tsurth

    terça-feira, 25 de setembro de 2012 12:02
  • Opa... Eai meu blzzz..

    Então, segue uma ideia... Pelo que entendi seu problema é chamar a função Request() no load da página certo? Então segue um ideia:

    onload = function () {

        if (document.forms[0].action == "PaginaParaValidacao.aspx") {

            var variaveis = location.search.split("?");
            if (variaveis != "") {
                var quebra = variaveis[1].split("=");
                var id = quebra[1];
                $(id).parent().find('div.cases').slideDown(300);

            }
        } 

        

    };


    • Editado AndesBH terça-feira, 25 de setembro de 2012 13:17
    terça-feira, 25 de setembro de 2012 13:16
  • Fala Andes!!

     kra, na verdade não é chamar a função, ela até chama, mas nao executa a linha:

      $(id).parent().find('div.cases').slideDown(300);
     


    

    esse id eh referente a um div que quero expandir na tela assim que ele abre a pagina vindo através de um request da URL


    Darth Tsurth

    terça-feira, 25 de setembro de 2012 13:22
  • A tah!! Entendi...

    kra faz o seguinte... Você vai ter que debugar, no lugar desta linha faz assim:

    //        $(id).parent().find('div.cases').slideDown(300);
    var valida = $(id).parent()[0].innerHTML;

    Confere dentro da variável "Valida" se sua DIV esta realmente dentro dela. 

    outra coisa, este código:

    $(id).parent().find('div.cases');

    Retorna o Length maior que 0 ??

    • Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:22
    terça-feira, 25 de setembro de 2012 15:00
  • kra, essa linha q vc mandou da erro.

    Erro em tempo de execução do Microsoft JScript: Não é possível obter valor da propriedade 'innerHTML': o objeto é nulo ou não definido

    
    
    
    
    
    
    

    Darth Tsurth

    quarta-feira, 26 de setembro de 2012 01:49
  • Ahhhhh!! Então estamos chegando no problema...

    Acredito que o problema seja o "id" que esta chegando... Não deve estar encontrando nada.

    Veja, a linha abaixo deve estar retornando Length = 0 por isso deu o erro que vc mencionou. 

    Kra, confere esse id que esta chegando.. 

    $(id).parent()


    • Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:22
    quarta-feira, 26 de setembro de 2012 11:09
  • Fala Andes!!

    Pior que ele recupera o ID sim....da uma olhada no codigo denovo

     var variaveis = location.search.split("?");
                if (variaveis != "") {
                    var quebra = variaveis[1].split("=");
                    var id = quebra[1];
                    //$(this).parent().find('div.cases').slideDown(300);
                     $(id).parent().find('div.cases').slideDown(300);
    se debugar na linha var id= quebra[1]; ele ta trazendo o numero da id que eu chamo na url sem problemas..

    

    Darth Tsurth

    quarta-feira, 26 de setembro de 2012 13:14
  • Pode postar o seu código html para a gente poder analisar?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 26 de setembro de 2012 13:17
  • <script>
        $(document).ready(function () {
            $("#topo a").bind("click", function (event) {
                var $anchor = $(this);
    
                $("html, body").stop().animate({
                    scrollTop: $($("#topo a").attr("href")).offset().top
                }, 200);
    
                event.preventDefault();
            });
            /////CASES
            $('div.cases').hide();
            $('h2.cases').click(function () {
                if ($(this).parent().find('div.cases').is(':hidden')) {
                    $('div.cases').slideUp(300);
                    //$('h2.cases b').aspx("+");
                    //$(this).parent().find('h2.cases b').aspx("-");
                    $(this).parent().find('div.cases').slideDown(300);
                } else {
                    //$(this).parent().find('h2.cases b').aspx("+");
                    $(this).parent().find('div.cases').slideUp(300);
                };
            });
    
        });
    
        
            function request() {
    
                var variaveis = location.search.split("?");
                if (variaveis != "") {
                    var quebra = variaveis[1].split("=");
                    var id = quebra[1];
                   $(id).parent().find('div.cases').slideDown(300);
    
                }
            }
       
    </script>
    
    
      <div class="lista"> 
                    <h2 class="cases">- Cliente</h2>
                    <div class="cases" id="1">
                        <p>                
                            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse auctor feugiat volutpat. Quisque eros erat, imperdiet et elementum sed, rutrum quis metus.                    
     </p>
                    </div>
                </div>
    o que eu preciso que aconteça eh que o div: <div class="cases" id="1"> abra segundo o ID que eu recupera da URL

    Darth Tsurth

    quarta-feira, 26 de setembro de 2012 13:23
  • Qual id que vem da URL? o id 1?

    Se vier div 1 você quer exibir ela mesmo?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 26 de setembro de 2012 13:29
  • nesse teste sim, eu recupero o id 1, mas pode ser diversos numeros pq tenho mais de 10 divs, então eu recupero o id dele na url e exibo


    Darth Tsurth

    quarta-feira, 26 de setembro de 2012 13:32
  • Pode ser que eu não tenha entendido direto ainda... mas vamos ver.

    Se o id que você recuperar é o mesmo que você quer exbir porque você não faz desta forma:

     $(id).slideDown(300);

    Outra dúvida, no momento de exbir a div o seu id esta assim 1 ou assim #1?



    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS



    quarta-feira, 26 de setembro de 2012 13:35
  • eu ja tentei tb e nao deu certo....mas olha no print como ele recupera o id certinho.....


    Darth Tsurth

    quarta-feira, 26 de setembro de 2012 13:40
  • Tuco, acho que vc vai ter que fazer desta forma

    $('#1').slideDown(300);


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS


    quarta-feira, 26 de setembro de 2012 13:42
  • Janderson, de fato funciona, mas a escolha do ID é dinamica e dessa forma eu amarro apenas no 1

    Darth Tsurth

    quarta-feira, 26 de setembro de 2012 13:46
  • Cara é só vc concatenar, algo desta forma:

    var idConcatenado = "#" + id;

    $(idConcatenado).slideDown(300);

    Não sei se está certo a concatenção, mas teóricamente é só concatenar e mandar bala.


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:15
    quarta-feira, 26 de setembro de 2012 14:12