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 :

[JQuery]Création d'un élément après chargement de la page


Sujet :

jQuery

  1. #1
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    Par défaut [JQuery]Création d'un élément après chargement de la page
    Bonjour,
    je viens de découvrir cette superbe librairie (jQuery) qui facilite grandement la vie ^^. Je me pose tout de même quelques questions.
    L'accès aux éléments d'une page se fait grâce à la fonction ready() qui permet d'attendre le chargement des éléments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $(document).ready(function() {
            $("#alias").click(function(){
                 alert("Hello world");
             });
    Ce code fonctionne très bien il va afficher le message "Hello world" quand on clique sur un élément alias. Maintenant j'aimerai générer dynamiquement un élément alias grâce au code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $(document).ready(function() {
    $("#add").bind("click", function ()  {
                    $("#divtest").html($("#divtest").html() +"<br><span id='alias'>alias </span>" );
            });
     
     $("#alias").click(function(){
                 alert("Hello world");
             });
    });
    quand on clique sur l'élément add, l'élément alias apparait mais impossible d'afficher "Hello world" en cliquant dessus. Je pense que ça vient du fait que l'élément alias a été créé après chargement de la page...Est ce que vous voyez une solution à ce pb?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(document).ready(function() {
      $("#add").bind("click", function ()  {
        $("#divtest").html($("#divtest").html() +"<br><span id='alias'>alias </span>" );
        $("#alias").click(function(){
           alert("Hello world");
        });
      });
    });
    Il te faut assigner le click après que l'élément soit crée, pas avant.

    Une remarque sur ton code, tu ajoute du code html à ta div divtest.
    Si tu procède comme tu l'as fait, c'est à dire en recomposant une chaine html
    contenant l'ancien code html de divtest auquel tu ajoute ton br et span, alors
    tu vas détruire les éléments dom existants pour en recréer de nouveaux.

    Tu perdras toute affectation d'évènements sur le code existant dans divtest

    Il te faut regarder les méhtode append, prepend appendTo etc... pour faire
    ça.

    Une autre remarque, pour créer ton span cliquable tu peux écrire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $("<span></span>").html('alias').click( function() { alert("Hello world"); }).appendTo($('#divtest'));
    JQuery propose un chainage des appels vraiment très pratique et concis.

  3. #3
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    Par défaut
    Merci beaucoup pour ta réponse claire ^^

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 16/03/2011, 14h53
  2. [DataGrid] Sélectionner élément après chargement
    Par maitrebn dans le forum Silverlight
    Réponses: 5
    Dernier message: 27/01/2010, 10h05
  3. [Dojo] Ajouter des elements dojo apres chargement de la page
    Par khattat dans le forum Bibliothèques & Frameworks
    Réponses: 10
    Dernier message: 29/07/2009, 09h51
  4. Réponses: 0
    Dernier message: 03/05/2009, 18h21
  5. afficher un texte après chargement de la page
    Par klintistwood dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/04/2008, 20h01

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