Stuck en train de recharger du contenu ajax dans un onglet jQuery par programme

Je suis très novice en programmation, alors pardonnez-moi mon noobness. J’utilise les excellents tabs jQuery pour mon application, je charge le contenu externe dans les tabs via ajax et, dans l’un de ces tabs, je dois recharger par programme le contenu de cet onglet après un résultat. J’ai suivi la documentation * en vain.

J’ai initialisé très simplement les tabs de ma page racine avec:

Javascript:

$(document).ready(function(){ $("#tabs").tabs({ cookie: { expires: 30 } }); }); 

Le HTML:

  

Vous pouvez voir que je charge une URL externe de “flaggedCards /”. Là, j’ai plus de jQuery avec cette fonction:

  $(document).ready(function(){ $("#controls_{{id}} input").click(function() { $(this).parent().parent().parent().addClass("highlight").fadeTo("slow", 0.1); $("#tabs").tabs( 'load' , 0 ); // fails also sortinged various selectors }); }); 

Ce que j’essaie de faire, c’est d’appeler l’onglet flaggedCards pour recharger lorsque cette fonction est appelée. J’ai essayé diverses syntaxes en vain.

  • docs.jquery.com/UI/API/1.7.1/Tabs#method-load

J’ai pu reproduire exactement le même problème que vous avez signalé dans votre message. C’est comme ça que j’ai fini par le résoudre.

Dans la page racine hébergeant les tabs, ajoutez cette fonction:

 function selectTab(index){ $("#tabs").tabs('load', index); } 

Puis dans votre page d’URL externe “flaggedCards /”, remplacez la ligne qui dit:

 $("#tabs").tabs( 'load' , 0 ); 

avec ça:

 selectTab(0); 

Je ne sais pas pourquoi cette solution de contournement fait l’affaire. C’est peut-être un bug.

Pour que le script soit exécuté, vous devez vous assurer que le type de données des demandes ajax est “html” – voir les options $ .ajax . Pour ce faire, essayez l’option ajaxOptions d’ onglet lors de la configuration de vos tabs.

 $("#tabs").tabs({ cookie: { expires: 30 }, ajaxOptions: {dataType: "html"} }); 

L’autre problème peut être que le $(document).ready(function(){ ne se déclenche probablement pas lorsque le contenu de l’onglet est chargé via ajax. Essayez de supprimer cela et le } correspondant. Lorsque vous chargez votre contenu via ajax, espérons-le il l’a inséré dans le document avant d’évaluer les scripts.

Je suis à court d’idées. J’espère que cela pourra aider 🙂

Je dois mentionner qu’il exécute les scripts dans le code HTML chargé, voir la fonction addclass, qui fonctionne correctement, mais après avoir exécuté, il ne recharge pas l’onglet avec le code que j’ai entré. Je vais essayer d’append ce type de données cependant.