2009-07-03 19 views
0

Dies ist ein Skript, das, wenn ein Link angeklickt wird, eine Seite von irgendwo zieht und es in ein div in der aktuellen Seite einfügt. Ziemlich einfach, ja, aber der dicke Kopf zu sein, scheint ich zu sein, ich kann nicht herausfinden, wie man es umsetzt.Wie kann ich dieses Ajax-Skript implementieren?

Wie kann ich den Link so formulieren, dass er das Skript auf die Seite zeigt Ich möchte in das div ich möchte laden?

Das Skript:

$(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; 

    }); 
}); 

Die Anweisungen geben Folgendes an:

  1. Wir wollen die Links im Navigationsmenü zum Ziel und eine Funktion ausführen, wenn sie angeklickt werden:

    $('#nav li a').click(function() { 
        // function here 
    }); 
    
  2. Wir müssen definieren, welche Seite die Daten erhalten, wenn eine Verbindung cli ist cked auf:

    var toLoad = $(this).attr('href')+' #content'; 
    
  3. Die Loadcontent Funktion ruft die angeforderte Seite:

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

Es ist sehr wahrscheinlich, dass die vor allem ist, dass das Skript auszuführen benötigt als gedacht, aber wenn Sie nur weiß, wie es geht, was ich nicht tue.

PS: Das Tutorial, aus dem alles kommt, ist here.

Antwort

3

Im Grunde alle Link Klicks und machen Sie eine AJAX-Anfrage statt ... Denken Sie daran, return false am Ende der Klick-Callback-Funktion.

$('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 
}); 
Verwandte Themen