2009-02-02 7 views
2

En essayant d'utiliser le code présenté ici link text J'ai rencontré des problèmes, ce qui a été suggéré d'ouvrir une nouvelle question pour ce problème. Im un utilisant ce code ici link text en essayant de créer un backchannel pour une réunion (il utilise l'API de recherche de twitter pour afficher les données, alors essayez s'il vous plaît avec un hashkey pour obtenir des données). Le problème est que, quand le contenu l'obtient, il disparaît immédiatement comme si le div était masqué. Lorsque je regarde la source, je peux voir le contenu de la div mais il n'est pas affiché. À moins que le délai d'attente ne se produise et que le message d'erreur pour le délai d'attente s'affiche, le contenu de la div ci-dessous restera. Pour être complet, je vais mettre le code étant utilisé ici:auto-refresh div avec jquery

   <script type="text/javascript"> 
    function update() { 

    $("#notice_div").html('<img src="img/ajax-loading.gif" border="0"/>'); 
    $.ajax({ 
     type: 'GET', 
    url: 'inc/backchannel.php', 
     timeout: 2000, 
    success: function(data) { 
     $("#backchannelContent").html(data); 
     $("#notice_div").html(''); 
     window.setTimeout(update, 2000); 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     $("#notice_div").html('Timeout contacting server..'); 
     window.setTimeout(update, 60000); 
    } 
    })}$(document).ready(update); 
    </script> 

Merci d'avance pour toute aide, je ne suis pas beaucoup plus d'un codeur javascript donc il se sent comme marcher contre un mur de briques ici :-(

Répondre

2

Vous avez des problèmes parce que le contenu de div est chargé avant que l'animation cachette est terminée, vous pouvez le résoudre en utilisant un autre rappel, comme ceci:.
(ce est très similaire à ce que Mark a écrit, mais avec des fonctions anonymes)

$(document).ready(function(){ 
    setInterval(function(){ 
    $("#random:not(:animated)").hide("slow", function(){ 
     $("#random").load("inc/backchannel.php").show("slow"); 
    });//show callback 
    } ,10000);//set interval 
});//doc.ready 
+0

celui-ci est très utile et certainement dans le bon sens la première fois il montre tout maintenant et il reste affiché ... mais quand l'actualisation du contenu est dans le 'être montré à nouveau et reparti '... peut-être besoin de donner un temps plus long pour cet intervalle? –

+0

Pourriez-vous télécharger une version sur votre serveur? Cela a bien fonctionné pour moi. – Kobi

+0

ce code est téléchargé sur le serveur, il peut être trouvé à http://togethr.org/test/test.php mais comme je l'ai dit la première fois qu'il montre la page après un rechargement, il va mal maintenant :-((vous pouvez essayez-le en remplissant quelque chose comme 'superbowl' dans le champ de saisie et appuyez sur Entrée) –

1

essayer quelque chose comme ça

function getRandom() { 
    $("#random").hide("slow"); 
    $("#random").load("http://www.google.co.uk", '', callback); 
} 

function callback() { 
    $("#random").show("slow"); 
    setTimeout("getRandom();", 10000); 
} 

$(document).ready(getRandom); 
+0

essayé votre suggestion avaible à test2.php au lieu de test.php et il donne le même problème ... le contenu est chargé et que le divs se cache: - ( –