2016-07-12 3 views
0

Je 3 boutonshash et pushState dans jquery ajax

<div onclick="javascript:newmessage()" class="mailcontents">New Message</div> 
<div onclick="javascript:inboxmails()" class="mailcontents">Inbox</div> 
<div onclick="javascript:sentmailsbox()" class="mailcontents">Sent</div> 

et divs où le contenu doit être affiché

<div id="inbox"></div> 
<div id="sent"></div> 

Onclick de chaque je change le contenu en appelant le fonctions respectives

var times = 0; 
    function inboxmails(){ 

     times++; 
location.hash = times; 
     $('#inbox').empty(); 
     $('#sent').empty(); 
     $('#newmessage').empty(); 
     $.ajax({ 
       success: function (data) { 
        $('#inbox').append('inbox data'); 

       } 
      }); 
     } 
    function sentmailsbox(){ 
     times++; 
location.hash = times; 
     $('#inbox').empty(); 
     $('#sent').empty(); 
     $('#newmessage').empty(); 
     $.ajax({ 
       success: function (data) { 
        $('#sent').append('sent data'); 

       } 
      }); 

    } 
    function newmessage(){ 
     $('#inbox').empty(); 
     $('#sent').empty(); 
     $('#newmessage').empty(); 
     $.ajax({ 
       success: function (data) { 
        $('#newmessage').append('new message data'); 

       } 
      }); 

    } 

J'ai également ajouté hashi ng qui ajoute la balise de hachage et une valeur numberical à l'url

Voici le code plunker https://plnkr.co/edit/tTMzTFIHD03pkIt4CkHO?p=preview

Mais quand je clique sur le bouton de retour du navigateur, il doit recharger le précédent contenu ajax. si je clique sur inbox, il affiche inbox data et ensuite je clique sur sent, il affiche sent data, puis lorsque je clique sur le bouton de retour du navigateur, il doit afficher le contenu de la boîte de réception inbox data, c'est-à-dire le contenu précédent.

J'ai compris comment changer un URL en utilisant un hachage. Mais je suis incapable de comprendre et je ne pouvais pas non plus trouver un bon exemple pour pousser l'histoire vers l'arrière/afficher le contenu ajax perméable.

J'ai vérifié divers exemples. Mais je ne comprends pas comment aller charger du contenu ajax en utilisant le hachage.

S'il vous plaît aider !!! Merci d'avance !!!

Répondre

0

Vous n'avez lié aucune fonction à un événement de modification du hashtag. En JavaScript, vous pouvez utiliser cet événement pour déclencher à nouveau l'appel AJAX:

window.onhashchange = doThisWhenTheHashChanges;

Voir Mozilla

Il y a aussi ce JQuery library vous pouvez regarder qui traite des problèmes de compatibilité entre navigateurs et une liste complète de l'alternative solutions