2010-02-23 9 views
0

Je pense que mon problème réside plus dans mon approche et s'applique plus à jquery, mais quelque chose d'étrange se passe ici. J'utilise jQuery & jqTouch.jQuery & jqTouch - problème ajax.load

Mon html est:

<div id="home" class="current"> 
    <div class="toolbar"> 
     <h1>Header</h1> 
    </div> 
    <ul class="rounded"> 
     <li class="arrow"><a href="#currentloc">Current Location</a></li> 
    </ul>  
</div> 
<div id="currentloc"> 
    <div class="toolbar"> 
     <h1>Nearby</h1> 
    </div> 
</div> 

Ce que je suis en train de faire est lorsqu'un utilisateur clique sur le lien de l'emplacement actuel, sur pageAnimationEnd Je voudrais charger une page et l'ajouter à #currentloc. Voici mon code:

$('#currentloc').bind('pageAnimationEnd', function(e, info){ 
    $(this).load('results.php'); 
}); 

Comme vous pouvez le voir, cela remplacera entièrement le contenu de #currentloc. Je ne sais pas comment j'ajoute le contenu de results.php sans remplacer ce qui est déjà là. Je l'ai regardé à mettre la demande de chargement ajax intérieur de append:

$(this).append(load('results.php')); 

mais tout ne fonctionnait pas ...

Toute idée de quoi faire?

MISE À JOUR

Une chose que j'ai essayé ce qui fonctionne, mais se sent un peu maladroit est

$('#currentloc').bind('pageAnimationEnd', function(e, info){ 
$(this).append('<ul></ul>'); 
$(this).find('ul').load('results.php'); 
}); 

Sentez-vous comme il y a une meilleure solution à cela.

Répondre

2

La fonction de chargement de jquery remplace le contenu, vous devez donc créer un autre élément si vous souhaitez conserver le contenu actuel. Vous pouvez rendre votre code un peu plus court si vous supprimez l'appel de la fonction de recherche.

$('#currentloc').bind('pageAnimationEnd', function(e, info){ 
    $(this).append($('<ul />').load('results.php')); 
}); 

ou

$('#currentloc').bind('pageAnimationEnd', function(e, info){ 
    $('<ul />').load('results.php').appendTo(this); 
});