2011-06-21 4 views
-1

Je suis plutôt nouveau pour AJAX, et est en train d'apprendre comment mettre en œuvre Adresse jQuery sur un site de démonstration pour que je pourrions porter la parole à un projet personnel que je travaille. Bien que je puisse charger le contenu souhaité via des liens hypertexte et modifier le hachage d'URL, je ne parviens pas à accéder à un état particulier si j'entre le hachage d'URL directement dans la barre du navigateur.Adresse jQuery - Deep linking et déclare

Le code actuel ressemble à ceci:

$("h2.entry-title a").live('click', function(event) { 
    event.preventDefault(); 
    $("#content").fadeOut("slow").load($(this).attr("href")+" #content > *", function() { 
     $.address.value("?page=entry"); 
    }).fadeIn("slow"); 
}); 

J'ai essayé à la recherche des tutoriels et des démonstrations sur l'utilisation de jQuery adresse pour mettre en œuvre des liens profonds, mais jusqu'à présent, il n'a rien donné fructueux.

Merci pour votre aide :)

p/s: La raison pour laquelle je .live() au lieu de .bind() est parce qu'à un moment donné plus de titres d'entrée seront insérés dynamiquement.

Répondre

0

Il n'y a rien dans ce code qui lit l'url lorsque vous chargez une page. Si vous tapez dans la barre d'adresse "http://test.com/test.html?page=entry", vous devez charger le contenu au chargement de la page, lorsque le hachage est modifié manuellement, et sur les événements de clic.

http://abishaigray.com/jquery.address.php

$(function() { 
    var content = $("#content"); 
    var loadUrl = function(url) { 
     content.fadeOut("slow", function() { 
      content.load(url + " #content > *", function() { 
        content.fadeIn("slow"); 
       }); 
     }); 
    }; 
    $("a.loadUrl").live('click', function(event) { 
     event.preventDefault(); 
     $.address.parameter("page", $(this).attr("href")); 
    }); 
    $.address.change(function(vars) { 
     var page = $.address.parameter("page"); 
     if (page) { loadUrl(page); } 
    }); 
}); 

J'ai profité de l'événement $.address.change. De cette façon, à chaque fois que vous mettez à jour l'URL ou lorsqu'un utilisateur arrive pour la première fois, le contenu sera rechargé.

+0

j'ai une petite idée que je dois utiliser .address.change $ à un moment donné, mais je ne sais pas comment le mettre en œuvre. Avez-vous un exemple simple pour illustrer cela? Merci beaucoup :) – Terry

+0

Bien sûr, voir ci-dessous. '$ .address.change (function (vars) {alert ('l'URL a changé!');});' De même, lisez le document [jQuery Adress Docs] (http://www.asual.com/jquery/address/docs /) –

+0

Merci. J'ai lu les documents et aussi les exemples il y a quelques jours, mais j'ai encore du mal à comprendre comment cela fonctionne. J'ai un exemple qui illustre comment ici '.address.change de $()' fonctionne - http://jsfiddle.net/5L6Ur/9/ Cependant, ce qui me dérange est comment puis-je naviguer à l'utilisateur de l'état correct lorsque ils entrent une URL spécifique à l'état? Je m'attendrais à une certaine regex, mais je n'ai rien trouvé dans les exemples jusqu'à présent. – Terry