Usuário com melhor resposta
Erro com Jscript

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 URLDarth Tsurth
- Movido Seilor Bonancio Junior terça-feira, 25 de setembro de 2012 18:16 (De:ASP.NET)
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
-
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
-
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
- Editado Janderson Candido de Mattos quarta-feira, 26 de setembro de 2012 13:36
- Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:16
-
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
- Editado Janderson Candido de Mattos quarta-feira, 26 de setembro de 2012 13:42
- Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:15
-
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
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
-
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
-
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
-
-
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
-
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
-
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
-
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
-
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
-
-
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
-
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
-
-
<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 URLDarth Tsurth
-
-
-
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
- Editado Janderson Candido de Mattos quarta-feira, 26 de setembro de 2012 13:36
- Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:16
-
-
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
- Editado Janderson Candido de Mattos quarta-feira, 26 de setembro de 2012 13:42
- Marcado como Resposta Dudú quarta-feira, 26 de setembro de 2012 14:15
-
-
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