2010-09-17 4 views
-1

je navigation avec les valeurs suivantes:Comment contrôler window.location.hash

<a href="#home" id="home" class="goto">Home</a> 
<a href="#profile" id="profile" class="goto">Profile</a> 
<a href="#account" id="account" class="goto">Account</a> 
<a href="#feedback" id="feed" class="goto">Feedback</a><br><br><div id="target"></div> 

Maintenant, j'ai la fonction suivante:

$(".goto").live("click", function(){ 
var goto = $(this).attr("id"); 
$.post(goto+".php", {}, function(data){ 
$("#target").html(data); 
}); 

}); 

Il fonctionne très bien, mais quand je frappe dos navigateur il ne fait rien, alors que je veux revenir en arrière ou en avant sur le contenu du navigateur devrait changer avec la fonction mentionnée ci-dessus.

Veuillez ne pas me renvoyer à une autre question ou page similaire, faites-moi savoir la solution exacte.

+3

« S'il vous plaît ne me détourne pas à une autre question similaire ou page me faire savoir la solution exacte "Umm, excusez-moi? Je prévoyais de vous aider jusqu'à ce que je lis cette remarque smartass. –

Répondre

2

Comme tous les navigateurs ne supportent pas encore, je prends le hashchange plugin by Ben Alman, votre pouvez simplement ajouter:

$(window).hashchange(function(){ 
    $(location.hash).click(); 
}); 

Si vous hachage a été dit #home après avoir frappé le bouton de retour, cela déclencherait la click gestionnaire pour cette ancre, provoquant l'exécution et le chargement de ce contenu par votre gestionnaire actuel. Aussi, si vous n'avez pas besoin POST, (puisque vous n'êtes pas passer toutes les variables), vous pouvez simplifier votre gestionnaire click aussi bien, comme ceci:

$(".goto").live("click", function(){ 
    $("#target").load(this.id+".php"); 
}); 
+0

'$ (location.hash)' Clever. :) –

Questions connexes