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 :

Comment interagir avec des éléments chargés en js dans un div


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut Comment interagir avec des éléments chargés en js dans un div
    Bonjour,

    J'ai un petit soucis avec l'interaction d'un contenu chargé dans une div par js.
    Le html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div class="grid" id="works">
        <div id="loadContent"></div>
        <figure class="effect-layla"> <img src="" alt=""/>
          <figcaption>
            <a href="#project-jolipre">See more</a> </figcaption>
        </figure>
    </div>

    Je récupère le contenu en js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $(document).ready(function() {
    	var projects = $("#works figure figcaption");
    	projects.click( function(){
    		var hash = $(this).find("a").attr("href");
    		openProject(hash);
    	});
    });
    Jusque là tout va bien. Dans le contenu qui est chargé j'ai l'élément suivant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <nav>
    	<ul>
    		<li class="prev"><a href=""><img src="img/project/nav/prev.png" alt="Previous"></a></li>
    		<li class="next"><a href=""><img src="img/project/nav/next.png" alt="Next"></a></li>
    		<li class="close"><a href="#works"><img src="img/project/nav/close.png" alt="Close"></a></li>
    	</ul>
    </nav>

    Le problème maintenant est pour cibler l'élément li pour y rajouter des interactions.
    J'ai essayé plusieurs variantes donc la dernière est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("#loadContent > nav .close").live("click", function(){
    	alert("btn Close Click");
    	closeProject();
    });
    L'alerte ne s'affiche pas donc j'en déduis que j'ai un mauvais ciblage.
    Si quelqu'un pouvait 'aider ?

    En vous remerciant par avance !

  2. #2
    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
    $("#loadContent > nav .close").

    Je ne vois une classe "close" dans le HTML chargé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $( "#loadContent").on( "click", "img[alt='Close']", function( event ){
        // debug, console, touche F12
        console.log( "event.target", event.target );
    });

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

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    Merci pour cette réponse qui m'a permis d'aller plus loin.
    La classe close est attribuée au li :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li class="close"><a href="#works"><img src="img/project/nav/close.png" alt="Close"></a></li>
    J'ai utilisé la même logique que ton bout de code et cela fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#loadContent").on("click", "li.close", function () {
    		closeProject();
    	});
    Encore merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/08/2012, 11h37
  2. comment interagir avec mysql
    Par mathlouthi dans le forum SGBD
    Réponses: 1
    Dernier message: 24/04/2007, 16h42
  3. [C#] interagir avec des équipements telecom
    Par Abydos Business Group dans le forum C#
    Réponses: 2
    Dernier message: 09/01/2007, 13h58
  4. [VB.NET] comment docker avec des marges entre controles ?
    Par lacsap49 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/11/2006, 16h59
  5. [C#] Comment interagir avec un EXE externe ?
    Par therock dans le forum C#
    Réponses: 2
    Dernier message: 16/08/2006, 18h56

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