Ir para conteúdo

POWERED BY:

Arquivado

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

userFeliz

Ajax Jquery

Recommended Posts

Olá.

 

Tenho um código para carregar uma pagina dentro de outra via ajax, porém ainda não esta como quero....

 

o que tenho até agora :

$(function() {
		var resposta = $("#divContact");//coloca a div da resposta numa variavel
		var ocultar = $("#divAbout");
		
		resposta.hide();// esconde a div da resposta
		
		//armazena a imagem em uma variavel
                var img  =  $("#loading"); 
                
                //esconde a div da imagem
		img.hide();
		
		$(".contact").click(function(e){
			e.preventDefault(); //mesmo que return false; 
			
			$.ajax({
				type: "POST",
				url: "contact.html",
				dataType: "html",
				beforeSend: function(){
						img.toggle();
					  },
				success: function(resultado){
					//aqui usamos a função slideToggle() combinada com a função html()
					resposta.slideDown("slow").html(resultado);	
					ocultar.slideUp().html(resultado);
				},
				complete: function(){
                       img.hide();
                   } 						
			});
		});
	});

 

 

Isso simplesmente faz: quando clicar em um botão, mostra em slide um arquivo html dentro de uma div JÁ CRIADA na pagina.

 

Porém, eu queria o seguinte :

 

Quando clicar, apenas a div(sem o arquivo) aparece em slide, e depois que a div estiver carregada, começa a carregar o arquivo html(dentro da div já carrega).

 

Outra coisa, é que mesmo depois de carregar o arquivo, quando eu clico no botão novamente, ele carrega de novo, então queria o seguinte: se a div já estiver carregada, o botão passa a ter função nenhuma.

 

Alguém sabe como proceder ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode remover o bind:

$(".contact").click(function(e){
    var $this = $(this);
complete: function(){
    img.hide();
    $this.unbind('click');
}

a primeira parte da sua dúvida eu não entendi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou desta maneira... Quando eu clico mesmo depois de ter carregado, ele insiste em carregar novamente....

 

Bem, a primeira duvida é a seguinte:

 

 

No meu HTML, eu tenho uma div :

 

<div id="divContact"> </div>

 

Que no script eu troquei ela por um variável :

 

 

var resposta = $("#divContact");//coloca a div da resposta numa variavel

 

E é nesta div, onde mostra o meu arquivo HTML, então, eu queria :

 

Quando o usuário clicar em .contact abrir primeiro a div(com slideDown), e depois da div esta aberta, começar a carregar o arquivo HTML, que ficara dentro desta div já aberta(divContact)

 

Exemplo este site :

 

http://fixedby.us/

Compartilhar este post


Link para o post
Compartilhar em outros sites

$('.contact').slideDown(function(){

//code
});

Eu não entendi muito bem qual o ponto que esta pegando mas do pouco que consegui entender o que tenho pra dizer é:

Toda função jquery tem um callback, você pode utilizar ele, no exemplo que citei ele só vai executar o //CODE depois que tiver terminado o slideDown

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.