IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Limitation de JQuery Mobile avec HTML 5 ?


Sujet :

jQuery

  1. #1
    Membre régulier Avatar de youtch
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 94
    Points : 90
    Points
    90
    Par défaut Limitation de JQuery Mobile avec HTML 5 ?
    Avec une base de données HTML5, la conversion de html par le framework est incomplète

    En effet, en testant plusieurs solutions, j'ai réalisé qu'une insertion d'élément <li> par la fonction $('element_html').append('texte à ajouter à l'élément') fonctionne très bien entre les closures prévues à cette effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $(document).bind("mobileinit", function(){ // On insère du code au chargement de JQueryMobile (pour parser correctement les enrichissements du framework)
      $(document).ready(function() { // On attends que le DOM soit correctement charger pour y ajouter nos nouveaux éléments (enrichis)
     
    	[Mon code]
      });
    });

    En revanche quand on insère des éléments qui proviennent d'une base de données locale utilisant les fonctions natives de HTML 5 rien ne fonctionne comme il le faudrait :
    Le texte que je veux inséré est affiché comme du texte HTML brut, le framework n'aurait il pas assez de temps pour réussir à le transformer ? Ou bien est ce une autre limitation ??

    Mon code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <!DOCTYPE html> 
    <html> 
    <head> 
    	<meta charset="utf-8" /> 
    	<title>Carnets de voyages</title>
    	<link rel="stylesheet" href="js/JQuery.mobile-1.0a2/jquery.mobile-1.0a2.min.css" />
    	<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
    	<script type="text/javascript" src="js/test_bug.js"></script>
    	<script type="text/javascript" src="js/JQuery.mobile-1.0a2/jquery.mobile-1.0a2.min.js"></script>
    </head> 
    <body> 	
     
    <!-- pageCarnets debut -->
    <div data-role="page" data-theme="b" id="pageCarnets">
     
       <div data-role="header" id="hdrCarnets" data-theme="b">
    		<h1>Mes carnets de voyage</h1>
      </div>
     
      <div data-role="content" id="contentCarnets">
    	<ul data-role="listview" id="listviewCarnets" data-inset="true" data-theme="d" data-dividertheme="b">
    		<li data-role="list-divider">Actions</li>
    		<li><a href="#pageCarnetCreer">Créer un carnet</a></li>
    		<li data-role="list-divider">Les carnets</li>
    		<!-- Remplissage via JavaScript	-->
    	  </ul>
      </div>
     
    </div>
    <!-- pageCarnets fin -->
     
    </body>
    </html>
    Code JavaScript : la 1ère solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(document).bind("mobileinit", function(){ // On insère du code au chargement de JQueryMobile (pour parser correctement les enrichissements du framework)
      $(document).ready(function() { // On attends que le DOM soit correctement charger pour y ajouter nos nouveaux éléments (enrichis)
    	$('#listviewCarnets').append(
    		"<li><a id=\"carnetAffich1\" rel=\"external\" href=\"pagecarnetAffich.php\">Carnet d'espagne, 1998 - Hasta luego el camino del Espania ! - Créé le 2011-03-13</a></li>"+
    		"<li><a id=\"carnetAffich2\" rel=\"external\" href=\"pagecarnetAffich.php\">Carnet de Quebec, 2011 - Ceci est premier voyage dans la Belle Province - Créé le 2011-03-14</a></li>"
    	);
      });
    });
    Code JavaScript : la 2ème solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    $(document).bind("mobileinit", function(){ // On insère du code au chargement de JQueryMobile (pour parser correctement les enrichissements du framework)
      $(document).ready(function() { // On attends que le DOM soit correctement charger pour y ajouter nos nouveaux éléments (enrichis)
     
    	try {
    		if (window.openDatabase) {
    			bdd = openDatabase( "carnetsDeVoyages" , "1.0", "", 2000);
    			if (!bdd)
    				alert("Impossible d'ouvrir la bdd. Peut être un problème de version ou alors pas assez de quota d'espace disque disponible pour ce domaine.");
    			} else
    				alert("Impossible d'ouvrir la base de données. Merci d'essayer avec un autre navigateur.");
    	} catch(err) { }
     
    	function modeleListeCarnets(bdd) {
    		bdd.transaction(function(tx) {
    			tx.executeSql("select id,nom,description,date_creation from carnets", [],
    				function(tx, rs) {
    					if (rs.rows.length) {
    						rsResultat=new Array();
    						for(var i=0 ; i<rs.rows.length ; i++) {
    							rsResultat[rs.rows.item(i).id ] =  rs.rows.item(i).nom +" - "+rs.rows.item(i).description+" - Créé le "+rs.rows.item(i).date_creation;
    						}
    						$.each(rsResultat , function(id,value) { 
    							// debug : alert(id+" : "+value);
    							if(id>0) $('#listviewCarnets').append("<li><a id=\"carnetAffich"+id+"\" rel=\"external\" href=\"pagecarnetAffich.php\" title=\""+value+"\">"+value+"</a></li>");
    						});
    					}                                   	       
    				},
    				function(tx, error) {
    					alert("Problème d'accès aux données : " + error.message);
    					return;
    				}
    			);
    		});
    	}
    	modeleListeCarnets(bdd);
     
      });
    });
    En ajoutant une fenêtre alert() avant la fin de code, ça marche, c'est bizarre quand même !
    Si personne ne répond à votre question, c'est peut-être parce qu'il n'y a pas de solution

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par youtch Voir le message
    En ajoutant une fenêtre alert() avant la fin de code, ça marche, c'est bizarre quand même !
    Qu'est-ce qui marche? la conversion ou l'alert ou le program en entier?

  3. #3
    Membre régulier Avatar de youtch
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 94
    Points : 90
    Points
    90
    Par défaut
    L'affichage de liste bien présentée (il suffit de tester tresorunikin !) : et sur Safari 5 seulement, car avec Chrome l'ajout d'un alert("Test par exemple") n'apporte rien : aucun affichage de liste du tout.
    Si personne ne répond à votre question, c'est peut-être parce qu'il n'y a pas de solution

Discussions similaires

  1. Application en jquery mobile avec Eclipse Php
    Par Vanessa48 dans le forum jQuery
    Réponses: 0
    Dernier message: 28/10/2013, 14h13
  2. Utilisation de JQuery Mobile avec Java
    Par dark0502 dans le forum jQuery
    Réponses: 1
    Dernier message: 29/07/2013, 08h31
  3. Réponses: 11
    Dernier message: 13/03/2013, 00h55
  4. Réponses: 1
    Dernier message: 11/03/2013, 16h45
  5. jquery mobil avec l'attribut data-position="fixed"
    Par franklin19 dans le forum jQuery
    Réponses: 0
    Dernier message: 18/07/2011, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo