Chamando função automaticamente após .load()

3,775 views
Skip to first unread message

Renato Costallat

unread,
May 29, 2011, 9:08:27 PM5/29/11
to Lista jQuery Brasil
Olá a todos,

Estou com o seguinte problema, preciso executar uma função javascript automaticamente após carregar a página com o método .load()!

tentei procurar mas ainda não fui feliz!

Basicamente como está:

.load("pagina");

dentro da pagina tem uma função windows.onload() que não executa, seria basicamente uma outra maneira de chamar essa função, já que o windows.onload não funciona quando a pagina é carregada com .load !



Se não fui muito claro desculpe, só perguntar o que não entendeu que tento explicar melhor!

Abraços!

Ruan Carlos

unread,
May 29, 2011, 11:10:16 PM5/29/11
to jque...@googlegroups.com
é você não foi claro, mas:

window.onload não é compativel com $(document).ready();

Existem funções de callback nas requisições ajax:

.load( url, [ data ], [ complete(responseText, textStatus, XMLHttpRequest) ] )

.load(suaurl.xxx,function(data){alert('data')})


-----------------------------------------------------------------
Ruan Carlos
@ruanltbg
www.ruancarlos.com.br
Bacharel em Sistemas de Informação - Desenvolvedor web




Leo Balter

unread,
May 30, 2011, 7:47:27 AM5/30/11
to jque...@googlegroups.com
.load não é uma função da página, é um método do jQuery para fazer uma requisição ajax onde se puxa um conteúdo.

Se quiser executar um script após essa chamada, faça como o Ruan disse, utilize um método de callback adicionando uma função como próximo parâmetro da sua requisição ajax (.load).

Renato Costallat

unread,
May 30, 2011, 9:48:16 AM5/30/11
to jque...@googlegroups.com
Tentar explicar melhor e dar uma atualizada no que eu já consegui!

Eu estou utilizando o método load() para chamar e carregar os conteudos na minha página principal, sem ter que fazer o refresh de tudo. Beleza está funcionando.

O problema se encontra nas páginas aonde existem scripts que precisam ser executados ao carregar a página, como eu disse antes com o método windows.onload. Estava tendo esse problema, consegui resolver da seguinte forma, invéz de colocar o método windows.onload eu simplesmente tirei  ele de dentro da função e deixei ele como se fosse "global" ai passou a funcionar corretamente!

Fiz uns teste e parece estar funcionando, meu medo é ocorrer aqueles problemas de o script executar e dar erro devido a página não ter sido carregada por completo!

Por enquanto foi a única solução que encontrei!

Essa outra forma de chamar uma função depois do load eu já tinha visto, talvez seja a solução, ai teria que para cada load criar uma função específica para a página! Só tirando uma dúvida, essa função depois do load só seria executada quando o conteudo já estivesse carregado, ou seja, síncrona?

Abraços e valeu pela ajuda!

2011/5/30 Leo Balter <leonard...@gmail.com>

Ruan Carlos

unread,
May 30, 2011, 11:27:51 AM5/30/11
to jque...@googlegroups.com
Acho que entendi. 

Na sua home vc tinha a chamada load para o aaa.php

No aaa.php vc tinha o onload? 

Não é muito correto vc ter uma resposta mista (js + html) o mais correto seria vc ter apenas 1 tipo de resposta, que no seu caso seria js.

-----------------------------------------------------------------
Ruan Carlos
@ruanltbg
www.ruancarlos.com.br

Bacharel em Sistemas de Informação - Desenvolvedor web

Renato Costallat

unread,
May 30, 2011, 11:55:25 AM5/30/11
to jque...@googlegroups.com
Exatamente isso ai !

Seria melhor então fazer um load para os js, e outro para o html então?

Eu vi que talvez usando ajax seria uma boa também, ai primeiramente você carrega os js e diz que tá esperando js e faz o mesmo para o html, não sei se teria muita diferença, mas eu li algo assim enquanto pesquisava!

Abraços!

2011/5/30 Ruan Carlos <ruan...@gmail.com>

Ruan Carlos

unread,
May 30, 2011, 12:27:35 PM5/30/11
to jque...@googlegroups.com
não, seria melhor vc ter apenas 1 tipo de retorno e não ter 2 requisições.

.load == ajax 

Seria assim:

$("#suadiv").html("seu conteúdo html");
outras coisas do seu js normal.

-----------------------------------------------------------------
Ruan Carlos
@ruanltbg
www.ruancarlos.com.br
www.jquerybrasil.org
Bacharel em Sistemas de Informação - Desenvolvedor web



Renato Costallat

unread,
Jun 2, 2011, 1:27:52 PM6/2/11
to jque...@googlegroups.com
Só pra deixar minha solução:

Remover o js da minha página e adicionar na página principal

Criar um .load para cada página que for ser chamada chamando as devidas funções que eram pra ser automatizadas
Reply all
Reply to author
Forward
0 new messages