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 :

Pointer sur un élément DOM d'une page non chargée [UI Mobile]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut Pointer sur un élément DOM d'une page non chargée
    Bonjour à tous,

    J'utilise phonegap + Jquery mobile en me basant sur cet exemple :
    http://www.raymondcamden.com/index.c...tabase-Support

    Un fichier main.js est chargé par la page index.html.

    Dans le main.js, il y'a un code qui appelle une méthode lors du submit d'une autre page, edit.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $("#editNoteForm").on("submit",function(e) {
            var data = {title:$("#noteTitle").val(), 
                        body:$("#noteBody").val(),
                        id:$("#noteId").val()
            };
            saveNote(data,function() {
                $.mobile.changePage("index.html",{reverse:true});
            });
            e.preventDefault();
    });
    Jamais je n'arrive à faire fonctionner ce code.
    Pour moi, c'est normal, car ce code est chargé au chargement d'index.html, et que jquery ne trouve pas #editNoteForm forcement car il est présent dans le DOM de la page edit.html...

    J'ai également testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#editPage").on("pageshow", function() {
        	alert('ok');
    }
    mais idem... Avez vous une idée du problème ?
    Est il possible de déclarer des méthode jquery sur des éléments DOM non présents au démarrage ?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui, en utilisant la délégation d'événement.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Merci Bovino

    C'est bien ce que j'avais compris mais cela ne marche pas.

    Voici la page chargée quand on clique sur un lien d'index.html
    Code html : 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
    <div data-role="page" id="editPage" data-theme="a">
    	<div data-role="header">
    		<h1>Ajouter</h1>
    	</div>
    	<div data-role="content">	
    		<form id="editNoteForm" method="post">
    			<input type="hidden" name="noteId" id="noteId" value="">
    			<div data-role="fieldcontain">
    				<label for="noteTitle">Titre</label>
    				<input type="text" name="noteTitle" id="noteTitle">
    			</div>
    			<div data-role="fieldcontain">
    				<label for="noteBody">Observation</label>
    				<textarea name="noteBody" id="noteBody"></textarea>
    			</div>
    			<div data-role="fieldcontain">
    				<input type="button" id="addObs" value="Sauvegarder">
    			</div>
    		</form>
    	</div>
    	<div data-role="footer" class="ui-bar">
    		<a href="index.html" data-role="button" data-icon="home">Accueil</a>
    	</div>
    </div>

    Et le code js chargé avec index.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      $("#addObs").on("click",function(e) {
            alert('ok');
        });
    Et au click, rien ne ce passe.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Vous n'avez pas bien compris le principe : $( "sélecteur parent non dynamique" ).on( "click", "sélecteur enfant dynamique ou non", function(){ ... });.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Rah quel idiot, j'avais mal lu la doc !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       $(document).on("submit", "#editNoteForm", function(e) {
     
            alert('ok');
     
        });
    Nickel, ça marche

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. acces au DOM d'un page non chargée
    Par scapa2a dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/03/2012, 11h13
  2. Réponses: 2
    Dernier message: 25/08/2011, 17h43
  3. Accéder aux éléments du Dom d'une page inclue avec une balise object
    Par Aloneghost dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 02/04/2011, 21h06
  4. relancer un script sur une page déjà chargée
    Par vraipolite dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/03/2006, 09h28
  5. Réponses: 7
    Dernier message: 23/12/2005, 15h08

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