2009-11-25 5 views
1

J'ai quelques questions concernant les boîtes épaisses. Je développe un site qui a besoin de quelques boîtes épaisses sur la page d'accueil pour être affiché à des moments différents. Lorsque les boîtes épaisses sont affichées, cela déclenche un appel d'API et affiche des commentaires dans la boîte épaisse.Comment utiliser correctement les thickboxes dans mon application?

J'ai décidé d'aller avec l'affichage des thickboxes en ligne pour réduire le nombre d'appels Ajax. Cela semble assez simple mais quelques problèmes se posent. La première est que div contenant le contenu de thickbox est supprimé lorsque la thickbox est affichée. Thickbox remplace le code HTML par du code HTML personnalisé pour afficher correctement le contenu. C'est OK mais il est problématique quand je veux que ma réponse AJAX mette à jour quelque chose à l'intérieur de l'thickbox et que je l'ai configuré pour accéder à l'thickbox en sélectionnant son ID de conteneur. Ce n'est plus disponible. Bien sûr, je pourrais spécifier des identifiants uniques pour la réponse, mais j'espérais simplement leur donner toute la classe "réponse" et les sélectionner en fonction de la DIV contenant extérieure. $("#login_lightbox > .response").html(ajax_response); Est-ce que cela a du sens? Mon autre souci est peut-être qu'il existe une meilleure façon de gérer les boîtes épaisses. Devrais-je effectuer l'appel AJAX pour obtenir le contenu de la boîte aux lettres qui ferait alors l'appel de l'API lors du chargement? Cela ne semble pas être un bon choix pour moi, mais un développeur précédent l'avait mis en place ainsi j'espérais obtenir quelques opinions à ce sujet.

Répondre

0

Pour ouvrir le nouveau contenu Ajax en une ouverture Ajax ThickBox, son code doit également contenir le code HTML approprié (class = "thickbox") pour lancer un Ajax ThickBox (voir la démo par exemple).

Vous pouvez lire & vérifier les démos sur au http://jquery.com/demo/thickbox/#sectionf-1

HTH

Edit:

Hey Tony, l'applique ci-dessus pour de nouveaux liens de contenu dans un Thickbox, de ne pas ouvrir un Thickbox. Pour aller avec la page de démonstration ci-dessus, le contenu initial contient un lien:

<p>What is jquery? <a href="newTBcontent.html?height=200&amp;width=300" class="thickbox">Answer</a></p> 

de sorte que le contenu est chargé dans le Thickbox.

Pour aller avec votre question, quand je fais ce qui suit, ça marche plutôt bien. J'ai peut-être mal compris votre question?

Quelque part sur la première page:

<p><a href="atb.php?height=200&amp;width=300" class="thickbox">Open AJAX Thickbox</a></p> 

contenu Thickbox (fichier 'atb.php'):

<script language="javascript" type="text/javascript"> 
jQuery(document).ready(function() 
{ 
    jQuery.ajax(
    { 
     type: "GET", 
     url: "atbd.php", 
     success: function(rsp) 
     { 
      jQuery(".response").html(rsp); 
     } 
    }); 
}); 
</script> 
<div id="container"> 
    <div class="response">RSP 1</div> 
    <div class="response">RSP 2</div> 
    <div class="response">RSP 3</div> 
    <div class="response">RSP 4</div> 
</div> 

fichier 'atbd.php':

<?php 
echo date('Y-m-d H:i:s', time()); 
?> 
+0

ce doesn Ne réponds pas du tout à la question. je sais comment afficher une thickbox – Tony

Questions connexes