2010-07-07 2 views
0

J'ai utilisé le plugin d'adresse jQuery pour activer la prise en charge des boutons d'arrière-plan, sauf lorsque le lien est dans la zone de contenu AJAX. Par exemplePlugin d'adresse jQuery - Ne fonctionne pas lorsque le contenu est remplacé

<div id="content"> 
    <a href="example.html" rel="address:example.html" onclick="ajaxLoad(this);">link</a> 
</div> 

où ajaxLoad remplace content avec le contenu de example.html. Lorsque j'essaie de faire cela, la barre d'adresse ne change pas, et le bouton de retour va juste à la dernière instance d'un lien en dehors de la zone de contenu.

Existe-t-il un moyen de faire fonctionner ce système?

EDIT:

plug-in: http://www.asual.com/jquery/address/

fonction Exemple ajaxLoad:

function ajaxLoad(obj) 
{ 
    $.get(obj, function(data) 
    { 
     $("#main").html(data); 
    }); 
    return false; 
} 
+0

pouvez-vous donner un lien vers ledit plugin? et la définition de 'ajaxLoad()' ... – Reigel

+0

J'ai ajouté l'information au message original –

Répondre

0

Je résolus en utilisant cette window.location contextuelle.

Modifié ajaxLoad:

function ajaxLoad(obj, inline) 
{ 
    if(!inline) 
     window.location='#/'+obj.rel.substring(8); 
    else 
    { 
     $.get(obj, function(data) 
     { 
      $("#main").html(data); 
     }); 
    } 
    return false; 
} 

Et puis le gestionnaire pour la charge de la page initiale, et lorsque les boutons Précédent/Suivant sont utilisés:

$.address.externalChange(function(event) 
{ 
    var url = event.value.substring(1); //strips the leading slash 
    if(url == "") 
     url = 'index.php'; 
    loadPage(url, true); 
}); 

Je ne sais pas si cela est meilleure méthode, mais cela fonctionne.

Questions connexes