Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Junior

[Resolvido] Links internos da navegação Ajax não funcionam.

Recommended Posts

O menu principal do meu site funciona normal. O problema está nos links internos que não abrem de jeito nenhum.

 

Por exemplo, se o menu principal aponta para uma página chamada "empresa.php", a página carrega na div de conteúdo. No entanto os links contidos no arquivo "empresa.php" não abrem na div de conteúdo, abrem o arquivo direto no browser.

 

Vejam meu código em javascript:

 

$(document).ready(function() {
   jQuery('a').each(function() {
       var href = jQuery(this).attr('href');
       jQuery(this).attr('href','javascript:void(0)');
       jQuery(this).click(function() {
           jQuery('#content').html("");
           jQuery("#carregando").show('slow');
           jQuery.get( href , function(data) {
               jQuery('#content').html(data);
               jQuery("#carregando").hide('slow');
           });
           return null;
       });
   });
});
jQuery.noConflict();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi do que você descreveu, teria que ter resolvido sim.

 

Se não resolveu, ou você não explicou direito, ou você implementou errado.

Poste como ficou o teu script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi do que você descreveu, teria que ter resolvido sim.

 

Se não resolveu, ou você não explicou direito, ou você implementou errado.

Poste como ficou o teu script.

 

A solução que você propôs é para adicionar elementos html na página.

 

Minha dúvida é sobre os links internos que não carregam na div content.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A situação é a mesma amigo.. eu não te mostrei "como inserir elementos na página".

Eu te mostrei como e pq os eventos de elementos inseridos não funcionam, e mostrei como fazer para resolver isso.

 

 

 

Leia com mais atenção. Eu não iria te sugerir algo completamente fora do que você precisa, e nem insistir se eu não tivesse certeza do que estou falando.

Abstraia a informação e faça a implementação que eu sugeri no teu script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora não carrega link nenhum. Veja meu código:

$(document).ready(function() {
   jQuery('a').each(function() {
       var href = jQuery(this).attr('href');
       jQuery(this).attr('href','javascript:void(0)');
       jQuery(this).live('click', function() {
           jQuery('#content').html("");
           jQuery("#carregando").show('slow');
           jQuery.get( href , function(data) {
               jQuery('#content').html(data);
               jQuery("#carregando").hide('slow');
           });
           return null;
       });
   });
});
jQuery.noConflict();

Compartilhar este post


Link para o post
Compartilhar em outros sites

logo, tem erro.

 

Teste assim:

$(document).ready(function() {
   jQuery('a').live('click', function( e ) {
           e.preventDefault();
           var href = jQuery(this).attr('href');

           jQuery('#content').html("");
           jQuery("#carregando").show('slow');
           jQuery.get( href , function(data) {
               jQuery('#content').html(data);
               jQuery("#carregando").hide('slow');
           });
   });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não ta resolvido.

 

Quando clico em um dos links, peço para o jQuery adicionar a classe "interno" ao body da página.

 

Quando uso o mesmo recurso em uma das páginas internas, o jQuery não funciona. No link da página interna solicito que o jQuery retire a classe "interno" do body e não acontece nada.

 

Vejam o código:

$(document).ready(function() {
   jQuery('a').live('click', function(e) {
       e.preventDefault();
       var href = jQuery(this).attr('href');

       jQuery('#container').html("");
       jQuery("#carregando").show('slow');
       jQuery.get( href , function(data) {
           jQuery('#container').html(data);
           jQuery("#carregando").hide('slow');
       });
   });

   jQuery('.item03 a').click(function() {
       jQuery("body").addClass("interno");
   });

   jQuery('.item05 a').click(function() {
       jQuery("body").removeClass("interno");
   });

});
jQuery.noConflict();

Compartilhar este post


Link para o post
Compartilhar em outros sites

use novamente o live nesses novos cliques também.

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.