2009-07-03 5 views
0

Il s'agit d'un script qui, quand un lien est cliqué, va tirer une page de quelque part et l'insérer dans un div dans la page en cours. Assez simple, oui, mais étant la tête épaisse je semble être, je ne peux pas comprendre comment l'implémenter.Comment puis-je implémenter ce script Ajax?

C'est-à-dire comment puis-je formuler le lien afin qu'il pointe le script vers la page Je veux charger dans le div que je veux?

Le script:

$(document).ready(function() { 

    // Check for hash value in URL 
    var hash = window.location.hash.substr(1); 
    var href = $('#nav li a').each(function(){ 
     var href = $(this).attr('href'); 
     if(hash==href.substr(0,href.length-5)){ 
      var toLoad = hash+'.html #content'; 
      $('#content').load(toLoad) 
     } 
    }); 

    $('#nav li a').click(function(){ 

    var toLoad = $(this).attr('href')+' #content'; 
    $('#content').hide('fast',loadContent); 
    $('#load').remove(); 
    $('#wrapper').append('<span id="load">LOADING...</span>'); 
    $('#load').fadeIn('normal'); 
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); 
    function loadContent() { 
     $('#content').load(toLoad,'',showNewContent()) 
    } 
    function showNewContent() { 
     $('#content').show('normal',hideLoader()); 
    } 
    function hideLoader() { 
     $('#load').fadeOut('normal'); 
    } 
    return false; 

    }); 
}); 

Les instructions précisent les éléments suivants:

  1. Nous voulons cibler les liens dans le menu de navigation et exécuter une fonction quand on clique dessus:

    $('#nav li a').click(function() { 
        // function here 
    }); 
    
  2. Nous avons besoin de définir quelle page pour obtenir les données à partir de quand un lien est cli cked sur:

    var toLoad = $(this).attr('href')+' #content'; 
    
  3. La fonction LoadContent appelle la page demandée:

    function loadContent() { 
        $('#content').load(toLoad,'',showNewContent) 
    } 
    

Il est très probable que ce qui précède tout ce qui est nécessaire pour exécuter le script comme prévu mais seulement si vous savoir comment le faire, ce que je ne fais pas. PS: Le tutoriel tout ce qui vient deest: here.

Répondre

3

Interceptez fondamentalement tous les clics de liaison et effectuez une requête AJAX à la place ... N'oubliez pas de return false à la fin de la fonction de rappel de clic.

$('a').click(function() { 
    var href = $(this).attr('href'); 
    $.ajax({ 
    url: href, 
    success: function (res) { 
     $(res).appendTo('#target'); // add the requested HTML to #target 
    } 
    }); 
    return false; // important 
}); 
Questions connexes