Ajouter dynamiquement des éléments pliables
Source: http://jquerymobile.com/demos/1.0a2/#docs/content/content-collapsible.html
Quand j'ajoute un élément comme cela manuellement pour mon code, il est affiché correctement.
Mais quand j'essaie de l'ajouter avec jQuery comme ceci:
$('body').append('<div data-role="collapsible"><h3>Title</h3><p>Content</p></div>');
Il affiche juste titre dans h3 et le contenu du dessous, donc pas comme un élément pliable.
Comment puis-je résoudre ce problème?
source d'informationauteur Bill
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple d'y parvenir est d'appeler le réductible() la méthode de sur le de créer dynamiquement des divs:
source : http://forum.jquery.com/topic/dynamically-add-collapsible-div
c'est ce que je fais. Espérons que cela aide
HTML
Javascript
htmlRankings() est une fonction js qui renvoie le code html que je veux à l'intérieur de la réductible div.
il peut être quelque chose comme ceci
Je pense que
après le réglage de la innerhtml, il suffit de tiggerring un événement sur la elle devrait rendre la dynamique contnet comme ci-dessous
Ce code est pour perl, vous pouvez la modifier pour n'importe quel langage de programmation.
REF: http://www.ssiddique.info/simple-javascript-to-create-dynamic-collapsible-section.html
De jquery mobile beta2 vous déclencher un événement .trigger('create')
vous pouvez actualiser la grille en utilisant le code suivant
Espère que cela aide
Vous devez ajouter au bon endroit (par ex. sous un
data-role="page"
élément) puis d'appeler.page()
pour initialiser le contenu que vous avez ajouté, comme ceci:Vous pouvez le tester ici.
Mieux que réductible est updatelayout c'est dans les docs. En bref...
De cette façon, vous pouvez ajouter des petits collapsibles dans une plus grande dynamique.
HTML:
Javascript
Voici un exemple de ce que j'ai fait pour modifier dynamiquement mon réductible. J'ai eu quelques tableaux que je nécessaire à l'affichage de l'en-tête, et puis j'avais besoin d'une grille dans chaque réductible jeu de 2 côtés, l'un pour la question et une réponse.
Voir le
enhanceWithin()
fonction: jQuery Mobile docs: enhanceWithinAppel
enhanceWithin
sur un objet jQuery qui représente votre élément DOM parent d'avoir tout de jQuery Mobile fonctionnalités ajoutées à votre code HTML.Dans ce cas:
Note que si vous ajoutez plusieurs jQuery Mobile les widgets que vous ne voulez appeler
enhanceWithin
sur un ancêtre comme le "CORPS" après l'ajout de tous vos HTML dynamique.Ce serait une très bonne solution pour cette question ainsi: Actualiser une section après l'ajout du code HTML de façon dynamique à jquery mobile