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 :

Sélecteur classe après .load


Sujet :

jQuery

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 66
    Points : 40
    Points
    40
    Par défaut Sélecteur classe après .load
    Bonjour, je souhaiterais effectuer des traitements sur une classe qui est chargée via un .load
    Est-ce possible ?

    Voici un petit exemple :

    Mon fichier test.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
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>html demo</title>
      <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>
     
    <div class="container">My container
    </div>
     
     
    <script>
    $(function(){
     
    	$(".container").load("html.html");
    	$(".test").click(function(){
    	alert("test");
    	});
     
    }); 
     
     
    </script>
     
    </body>
    </html>
    Mon fichier html.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b class='test'>Wow!</b> Such excitement...
    Je voudrais que lorsqu'on clique sur la classe test chargée via le load, l'alert("test") s'exécute.
    Une idée ?

    Merci d'avance.

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Lire la doc me semble pouvoir être un bon début, notamment en ce qui concerne les paramètres facultatifs de .load() et plus particulièrement celui appelé complete.
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 66
    Points : 40
    Points
    40
    Par défaut
    Super l'accueil, sinon la doc je l'ai au moins lue 15 fois, sans compter le nombre de recherches incalculables sur Google avant de venir poster ici.
    Si j'y avais trouvé une réponse crois moi bien que j'aurais pas perdu mon temps à venir ici...
    Maintenant si la réponse est si simple, je crois que ça t'aurais pris moins de temps à la mettre plutôt que de mettre ce commentaire inutile et arrogant.

  4. #4
    Membre confirmé
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Points : 549
    Points
    549
    Billets dans le blog
    1
    Par défaut
    Et bien premièrement et pour prendre la défense de Bovino il est vrai que la documentation t'indique une méthode pour t'en sortir.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( ".container" ).load( "html.html", function() {
      $(".test").click(function(){
    	alert("test");
      });
    });

    La fonction de callback nommé "complete" dans la documentation permet d'effectuer des actions une fois le chargement du contenu terminé. Je peux comprendre que tu sois passé à côté plusieurs fois mais pourtant c'est bien écrit (et pas besoin de chercher):

    complete
    Type: Function( String responseText, String textStatus, jqXHR jqXHR )
    A callback function that is executed when the request completes.
    Pour détailler le problème que tu as rencontré il faut comprendre également que tu déclares un événement sur un objet qui n'existe pas forcément au moment ou tu souhaites l'attacher.

    Il existe également une autre solution à ce problème qui est la délégation d'événement:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).on('click', '.test', function () {
      alert('test');
    });

    Cette méthode permet d'attacher l'événement 'click' sur le document mais de ne l’exécuter que si il rencontre le filtre '.test'.

    En espérant avoir aidé...
    Je préfère fermer ma gueule et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 66
    Points : 40
    Points
    40
    Par défaut
    Super merci Darkaurora, ça répond exactement à ce que je cherchais à faire.

    Bonne journée

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

Discussions similaires

  1. Remettre sur écoute fancybox après .load()
    Par cleecky dans le forum jQuery
    Réponses: 4
    Dernier message: 10/11/2011, 12h21
  2. [Article] Sélecteurs class et id
    Par Bovino dans le forum Publications (X)HTML et CSS
    Réponses: 3
    Dernier message: 01/07/2010, 11h24
  3. absence de classes après exportation en fichier .jar d'un plugin
    Par caro_caro dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 09/01/2009, 13h51
  4. probleme classe apres ajout de variable
    Par croc14 dans le forum Visual C++
    Réponses: 6
    Dernier message: 11/08/2006, 21h03
  5. Réponses: 5
    Dernier message: 20/11/2005, 11h15

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