Comment changer le thème de manière dynamique en jquery mobile?
Je suis entrain de créer un mobile les applications web à l'aide de jQuery Mobile.
Je suis en utilisant theme-b
pour chaque page et je voudrais changer pour un autre thème dynamiquement pour chaque page. Comment puis-je changer le thème de façon dynamique?
OriginalL'auteur Ramasamy Kanna | 2011-12-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez cibler des classes spécifiques qui se rapportent à certains widgets, réinitialiser leurs classes, puis ajouter le thème de la classe de votre choix:
http://jsfiddle.net/VNXb2/1/
Ce n'est pas entièrement fonctionnel extrait de code, vous aurez besoin de trouver d'autres widgets que vous voulez mettre à jour lorsque vous changez de thème et d'ajouter le code ci-dessus. Vous pouvez trouver ce que les classes de chaque widget a facilement à l'aide de FireBug ou un autre Développeur de la Console.
Mise à JOUR
Quand vous prenez en compte le
data-role="list-divider
éléments de cette devient un peu délicat:Voici une démo: http://jsfiddle.net/VNXb2/7/
J'ai mis à jour ma réponse,
data-role="list-divider"
s besoin d'un peu de logique pour obtenir leur droit, mais je pense que ma réponse est assez complet: jsfiddle.net/VNXb2/7Une autre idée, si vous modifiez le thème d'un widget avant il est initialisé alors il sera correctement initialisé dans le thème de votre choix. Si vous liez à la
pageInit
événement les widgets ne doit pas être initialisé et vous pouvez changer le thème de la page ou l'un des éléments dans la page.jsfiddle.net/wPQ85/3 s'il vous plaît vérifier sur ce site, je suis en utilisant statique et dynamique ul tandis que la liste statique diviseur thème est en train de changer, mais en dynamique, il n'est pas de changer
J'ai été en utilisant ce code pour un certain temps maintenant, parce que ça fonctionne très bien, (merci!) mais j'ai remarqué qu'il ne semble pas modifier l'interface utilisateur-corps sur des boîtes de dialogue. Je ne peux pas comprendre pourquoi. Toutes les pensées?
OriginalL'auteur Jasper
La réponse ci-dessus m'a beaucoup aidé, je l'ai modifié un peu pour mon besoin, je suis en utilisant themeroller et s'attendre à avoir plus de 20 thèmes. Voici ce que j'ai fait
Maintenant, quand je reçois le nouveau Thème à partir du serveur via json je viens d'appeler cette méthode avec le nouveau thème comme param.
Ce qui concerne
Rajesh J
OriginalL'auteur Rajesh
Rajesh réponse m'a beaucoup aidé... Mais Rajesh, vous avez raté une classe importante - - - - interface utilisateur-page-thème-*', j'ai donc modifié votre réponse et maintenant c'est parfait pour jQuery Mobile 1.4.5 (encore une fois)...
OriginalL'auteur Ken Berkeley