Groupe de contrôle dynamique et cases à cocher non stylées
Donc je suis en train de charger du contenu dynamique directement dans mon case contenant (group_checkboxes)
<div id='group_checkboxes' data-role="fieldcontain">
</div>
C'est la déclaration que je suis en cours d'exécution pour remplir le conteneur:
$('#group_checkboxes').append('<fieldset data-role="controlgroup"><input type="checkbox" name="' + $(this).find('data').text() + '" class="custom" /><label for="' + $(this).find('data').text() + '">' + $(this).find('label').text() + '</label></fieldset>');
Les cases sont toutes peuplé, mais le jQuery, le style n'est pas appliquée.
Selon la docs tout ce que je dois faire est d'appeler cette fonction pour mettre à jour la case à cocher style...
$("input[type='checkbox']").checkboxradio("refresh");
Qui ne fonctionne pas bien... une idée de ce que je fais mal?
source d'informationauteur Eric Franklin
Vous devez vous connecter pour publier un commentaire.
Essayez d'abord de leur propre statique de code de démonstration:
Ils sont juste en utilisant un fieldset comme je l'ai mentionné dans les commentaires.
Si cela fonctionne, puis ajuster votre script pour générer le même balisage dynamiquement et puis les rafraîchir
Si cela va fonctionner avec son code, vous saurez que vous avez d'erreur dans le balisage. Si non, il y a une erreur avec cette fonction de rafraîchissement. (Je sais que c'est pas la solution finale, mais vous avez à faire un peu de débogage parfois 🙂
Edit:
Trouvé des problèmes similaires, en résolu à l'aide d'
Page()
JQM FAQ
DONC, la Question
Lors de l'ajout de cases à cocher ou des boutons radio pour un controlgroup de façon dynamique, vous avez affaire à deux jQuery Mobile widgets,
.checkboxradio()
et.controlgroup()
.Les deux devraient être créé/modifié/amélioré/style avec jQuery Mobile CSS une fois que de nouveaux éléments sont ajoutés.
La manière d'y parvenir est différente dans les dernières versions stables et version RC, mais les méthodes sont les mêmes.
jQuery Mobile 1.2.x - 1.3.x (versions stables)
Après l'ajout case /bouton radio pour qu'elle soit statique ou dynamique controlgroup
.checkboxradio()
doit d'abord être appelé à améliorer case /bouton radio balisage et puis.controlgroup("refresh")
à re-style controlgroup div.jQuery Mobile 1.4.x
La seule différence ici, c'est des éléments qui doit être ajouté à
.controlgroup("container")
puis de l'améliorer à la fois controlgroup et tous les éléments à l'intérieur, à l'aide de
.enhanceWithin()
.essayer avec
$("#<id of fieldset controlgroup>").trigger("create");
http://jsfiddle.net/YKvR3/36/
essayer
Il fonctionne pour moi. Aucune idée pourquoi?
La Réponse pour moi est:
Ce qui pour moi a été de supprimer l'ensemble du fieldset puis remplacez place un nouveau jeu de champs avec le nouvel élément que je voulais ajouter, puis j'ai appelé le
.trigger('pagecreate');
méthode sur l'ensemble de la page. Ce n'est pas la solution la plus efficace mais c'est le seul qui a fonctionné dans mon cas.