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
    Nouveau membre du Club
    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
    Points : 27
    Points
    27
    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
    Points : 22 933
    Points
    22 933
    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 );
    });

  3. #3
    Nouveau membre du Club
    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
    Points : 27
    Points
    27
    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