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 :

Attacher fonction après chargement du bouton


Sujet :

jQuery

  1. #1
    Invité
    Invité(e)
    Par défaut Attacher fonction après chargement du bouton
    Bonjour,

    J'ai une page index.php avec un div id="contenu" et un bouton avec id="ok" et une page accueil.php avec un bouton id="test".

    Quand je clique sur Ok, la page accueil.php est chargée dans le div id="contenu" mais si je clique sur mon bouton id="test", rien ne se passe.

    D'après ce que j'ai compris dans la FAQ, mon code se déclenche une fois la page chargée et attache à mon bouton id="ok", un événement Onclick.

    Aussi, j'ai ajouté après le chargement de ma page accueil.php, l'attachement d'un événement Onclick sur mon bouton id="test".

    Voici le code de mon fichier JS.
    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
     
     
    $(document).ready(function(){
     
    	$('#ok').click(function() {		
     
    		$.ajax({
     
    			success : function(){				
    				$('#contenu').load("commun/accueil.php");
     
    		$('#test').click(function() {
    		alert('Test ok');		
    		return false;
    	});
     
    			},
     
    		});
     
    		return false;
    	});
     
    });
    Après recherche, je suis tombé sur des posts traitant de l'évaluation de scripts JS mais je ne sais pas si mon problème vient de là car en testant, rien ne change.

    Pouvez-vous m'aider ?

    Merci

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    bonjour .
    pourquoi ne fait tu pas ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(document).ready(function(){
     $('#ok').click(function() {	
    // code
     });
    	$('#test').click(function() {	
    // code
     });
    });

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse.

    J'ai testé ton code mais il semble qu'il manque des parenthèses.
    Après modification, le test n'est pas concluant car la page accueil.php ne se charge plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $(document).ready(function(){
     
    	$('#ok').click(function() {	
    		$('#contenu').load("commun/accueil.php");
    	});
     
    	$('#test').click(function() {	
    		alert('Test ok');
    	});
     
    });

  4. #4
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    essaye ceci :
    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
     
     
    $(document).ready(function(){
     
    	$('#ok').click(function() {		
     
    		$.ajax({
    			success : function(){				
    				$('#contenu').load("commun/accueil.php"); 
    			},
    		});
    		return false;
    	});
    		$('#test').click(function() {
    		alert('Test ok');		
    		return false;
    	});
     
    });

  5. #5
    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 : 55
    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
    Utilise la délégation d'événements : .delegate() ou .on().
    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

  6. #6
    Invité
    Invité(e)
    Par défaut
    @rotrevrep
    Après vérification, ton premier code est bon pour l'affichage de la page accueil.php mais rien ne se passe sur le clic du bouton id="Test".

    @Bovino
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $(document).ready(function(){
     
    	$('#ok').click(function() {	
    		$('#contenu').load("commun/accueil.php");
    	});
     
    	 $('#contenu').delegate($("test"), "click", function(){
    		alert('Test ok');
    	});	
     
    });
    - Clic de Ok alors chargement de la page puis affichage de 'Test ok'
    - Clic de Test alors affichage de 'Test ok'

    Le bouton Test fonctionne mais je dois avoir mal compris l'utilisation de delagate car au final le script affiche deux fois 'Test ok'.

    Merci
    Dernière modification par Invité ; 19/01/2012 à 15h28.

  7. #7
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    si je ne me trompe pas, tu devrais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('#test').delegate($(this), "click", function(){
    		alert('Test ok');
    	});

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je viens de tester mais rien ne se passe sur le clic du bouton Test.

    Merci pour ton aide.

  9. #9
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    Citation Envoyé par AdoOs Voir le message
    Je viens de tester mais rien ne se passe sur le clic du bouton Test.

    Merci pour ton aide.
    pourtant je viens de tester le code, cela fonctionne chez moi

  10. #10
    Invité
    Invité(e)
    Par défaut A
    Je viens de tester de nouveau mais sans succès.

    Index.php
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
     
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
     
    	<link rel="stylesheet" href="style.css" type="text/css" />
     
    	<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
     
    	<script>
     
    	$(document).ready(function(){
     
    		$('#ok').click(function() {	
    			$('#contenu').load("commun/accueil.php");
    		});
     
    		$('#test').delegate($(this), "click", function(){
    				alert('Test ok');
    		});
     
    	});	
     
    	</script>  
     
    </head>
     
    <body>
     
    	<div id='contenu'></div>		
     
    	<input type="button" id="ok" name="inclure" value="Bouton Inclure" />
     
    </body>
     
    </html>
    Accueil.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" id="test" name="tester" value="Bouton Test" />
    - Clic sur Bouton Inclure : La page "Accueil.php" est bien chargée dans le div "contenu"
    - Clic sur Bouton Test : Rien ne se passe

    Il y a surement une chose que je ne vois pas.

  11. #11
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    désolé, je n'avais pas vu tout ton code
    donc voilà ce que tu dois faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('#contenu').delegate($('#test'), "click", function(){
    		alert('Test ok');
    	});

  12. #12
    Invité
    Invité(e)
    Par défaut
    J'avais testé çà au post #6.

    Je viens de tester de nouveau et l"événement se déclenche sur le clic de la div contenu et non sur le bouton Test.

    Merci

  13. #13
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    La syntaxe n'est pas bonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('#contenu').delegate("#test", "click", function(){
    		alert('Test ok');
    	});

  14. #14
    Invité
    Invité(e)
    Par défaut
    Cela fonctionne .

    Merci à tous pour l'aide apportée.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/04/2014, 15h13
  2. [MooTools] Fonction send (ajax) traitement après chargement
    Par latour500 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 19/08/2013, 10h26
  3. Réponses: 8
    Dernier message: 03/11/2011, 15h22
  4. Réponses: 4
    Dernier message: 29/04/2010, 06h30
  5. [XL-2003] insertion d'une fonction apres clique sur bouton
    Par moxo01 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/04/2009, 15h36

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