Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ignoredxyz

Carregar Javascript no Ajax

Recommended Posts

Depois de muito tempo procurando e quase sem explicações claras, sobre como carregar um javascript após uma página ser carregada via Ajax.

Consegui após muitas tentativas e venho compartilhar.

 

1- Todos os métodos que você for usar (ações que você precisará usar nas páginas), precisam ser criados dentro de funções.

 

2 - Todos esses métodos devem ser declaradas fora do jQuery (fora do $(document).ready()) e similares. Exemplos:

 

ERRADO:

$(document).ready(function(){
    function functionName(){
        // acoes
    }
});

 

CERTO:

function functionName(){
    $(document).ready(function(){
        // acoes
    });
}

 

3- Coloque também a chama ajax dentro de uma função e chame as páginas usando o jQuery load().

function ajaxCall() {
    $(document).ready(function(){
         $(".ajax").click(function(){
            $("#conteudo").load( $(this).attr("href") );
            return false;
        });
    });
}

 

 

4- Crie um jQuery para chamar essas funções inicialmente ao carregar uma página (quando alguem entra no seu site por um link).


$(document).ready(function(){
     functionName();
     ajaxCall();
});

 

5- Na função ajaxCall, chama ela mesmo no final, e adicione o jQuery unbind() para remover múltiplos onClicks dos links com a class .ajax.


function ajaxCall() {
     $(document).ready(function(){
     $(".ajax").unbind("click");
        $(".ajax").click(function(){
             $("#conteudo").load( $(this).attr("href") );
             ajaxCall();
             return false;
         });
     }); 
}

 

6- Chame as outras funções que você criou e precisa utilizar nas páginas chamadas via ajax dentro da função ajaxCall()


function ajaxCall() {
    $(document).ready(function(){ 
        $(".ajax").unbind("click");
        $(".ajax").click(function(){
            $("#conteudo").load( $(this).attr("href"), function(){
                 functionName();
            });
            ajaxCall();
            return false;
        });
    });
}

 

Bom acho que é isso, se eu tiver me esquecido de algo, comentem por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.