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 :

Pas moyen de manipuler de nouveaux éléments ajoutés à ma page


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut Pas moyen de manipuler de nouveaux éléments ajoutés à ma page
    Bonsoir,

    Je m'en remets à vous, je coince complètement, voilà mon problème :
    J'utilise JQuery pour ajouter de nouveau élément dans ma page (avec des append) mais quand j'essaye de faire un traitement dessus (sur un click par exemple) ces nouveaux éléments ne sont pas reconnus, il ne se passe rien du tout quand je fais des clicks dessus, s'il vous plait aidez moi, je ne vois vraiment pas ce que je dois faire là
    Merci d'avance

    Cordialement,

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    tu leur applique un click à la création ?

    c'est un peu leger comme symptome sans voir le code de creation ni l'action que tu en attends sur le click ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    tu leur applique un click à la création ?

    c'est un peu leger comme symptome sans voir le code de creation ni l'action que tu en attends sur le click ...
    Merci pour ta réponse
    C'est ce que j'ai fait (je rajoute un attribut onclick et appelle une fonction qui fait le traitement que je veux) mais je cherche une meilleure solution, si elle existe
    Est ce que JQuery permet de faire ça? ou bien existe-t-il un plugin qui me permette de manipuler de nouveaux DOMs?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 85
    Points
    85
    Par défaut
    Salut,
    il faudrait que tu postes ton code pour qu’on puisse t’aider.

    Pour ton problème, tu peux peut-être utiliser click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var bouton = $('<button/>') //Création d’un bouton.
    .text('ok') //Modification de son texte.
    .click(function() { //Gestion de l’événement click.
        alert('ok'); //Actions lors de cet événement.
    });
    ('body').append(bouton); //Ajout au body.
    Avec ce code très commenté, tu devrais y arriver.

    À plus !
    Le propriétaire est éphémère, le libre est éternel.

  5. #5
    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 : 73
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125

    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.)

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Quelques rectifications sont a apporter au code d'antoyo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var button = $('<button />') //Création d’un bouton.
    button.attr("id", "foo") // ID
             .text('ok') // Texte du bouton
             .click(function() { alert("ok") }) // Si click, alors alert("ok")
             .appendTo(document.body) // On rajoute dans le DOM

    Citation Envoyé par danielhagnoul Voir le message
    Salut Daniel,

    live est inapproprié ici je pense. La fonction appelée lors du click étant en général unique par bouton clické

    A noter que .click() fonctionne parfaitement.
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    live est inapproprié ici je pense. La fonction appelée lors du click étant en général unique par bouton clické
    c'est un peu leger comme symptome sans voir le code de creation ni l'action que tu en attends sur le click ..
    ne sachant pas à quel niveau le click pose problème, je pense qu'il fallait aussi parler du live ...
    la description du problème est trop floue
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    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 : 73
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Création d’un bouton et ajout à un élément d'id conteneur
    var bouton = $("<button/>", {
    	id: "btnID",
    	html: "OK",
    	css: {
    		fontSize: "18px",
    		fontWeight: "bold",
    		color: "drakblue",
    		backgroundColor: "#cccccc"
    	},
    	click: function(){
    		alert($(this).text());
    	}
    }).appendTo("#conteneur");

    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.)

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Bonsoir

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Création d’un bouton et ajout à un élément d'id conteneur
    var bouton = $("<button/>", {
    	id: "btnID",
    	html: "OK",
    	css: {
    		fontSize: "18px",
    		fontWeight: "bold",
    		color: "drakblue",
    		backgroundColor: "#cccccc"
    	},
    	click: function(){
    		alert($(this).text());
    	}
    }).appendTo("#conteneur");
    Merci pour votre aide, Daniel tu es mon sauveur (comme d'habitude!) live marche à la perfection, c'est bien ce que je cherchais, encore merci

    Mon problème était le fait que les éléments ajoutés avec append n'étaient pas reconnu lors des évènements qui devaient pourtant leur correspondre, pour faire simple je vous donne un exemple qui se rapproche au cas que je traite :

    je crée des liens en cliquant sur un bouton, et je vois si le traitement sur leur click est effectué

    code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="conteneur"></div><br/>
    <span id="ok">ok</span>
    code javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $("#ok").click(function() {
    var lien = $('<a href="#" onclick="maFonction()">Nouveau lien</a><br/>');
    $("#conteneur").append(lien);
    });
     
    $("a").click(function() {
    maFonction();
    });
     
    function maFonction() {
    console.log("click lien");
    });
    Finalement live est la solution que je cherchais! plus de onclick et au lieu du click j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("a").live("click",maFonction());
    Evidemment si il y a meilleure solution je suis preneuse

    Bonne journée!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/07/2014, 14h57
  2. [TinyMCE] Activation sur nouveaux éléments ajoutés dynamiquement
    Par Recif dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 11/06/2013, 14h08
  3. Réponses: 3
    Dernier message: 12/03/2012, 08h26
  4. [VS 2005 PRO] Impossible d'ajouter de nouveaux éléments
    Par Gobouz dans le forum Visual Studio
    Réponses: 1
    Dernier message: 12/07/2007, 21h32
  5. Ajout nouveaux éléments dans liste de choix
    Par Crazyblinkgirl dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/06/2006, 15h17

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