Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2011, 14h13   #1
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 858
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 858
Points : 260
Points : 260
Par défaut Clic() sur DIV superposés

Bonjour @ tous,

J'ai des DIV enfants dans un DIV parent, tout ça en position absolute.
J'ai mis un click sur le parent et un autre sur chaque enfant:
Code :
$("#divParent").click(function () { alert("ok"); });
Le problème est que j'aimerais que cet événement ne soit pas prit en compte lors du clic sur un enfant.

Mon contexte: Lors du clic sur un enfant, je fait apparaitre un div, et si on clique ailleurs que sur un enfant, j'aimerais que ce div se cache.
Seulement, vu que lors d'un clic sur un enfant, le clic sur le parent se joue aussi, le div apparait et se cache aussitôt.
Pour info, dans mon dic enfant, il y a une image en background et c'est tout.

Est ce possible ?

Merci d'avance.

David.
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h30   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 014
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 014
Points : 45 102
Points : 45 102
si j'ai bien saisi :

http://api.jquery.com/event.stopPropagation/
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h40   #3
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 858
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 858
Points : 260
Points : 260
Bonjour SpaceFrog,

Merci pour ta rapidité.

Oui, tu as bien saisi, seulement ça ne colle pas car je n'utilise pas un évenement jQuery pour le clic de l'enfant.
Code :
<div onclick="clickElement(this);">...</div>
Je n'ai pas le choix car ce sont des div construits dynamiquement via de l'AJAX et je suis en MVC.

Si j'ai bien saisi, event.stopPropagation(); doit se mettre dans l'évenement de l'enfant. Mais si je le met dans la fonction clickElement() qui est dans un fichier js, il me met une erreur.
Code :
Erreur*: event is not defined


Il faut que mon code soit compatible Firefox et IE.
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h43   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 014
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 014
Points : 45 102
Points : 45 102
ben il faut utiliser live() ou delegate() poru tes elements créés dynamiquement
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h37   #5
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 858
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 858
Points : 260
Points : 260
Bon, je me suis débrouillé... Ca fonctionne !


Merci pour event.stopPropagation, SF.


PS: Je ne vois pas la différence entre click et live()... Sinon qu'on peut faire un die().
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h59   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 014
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 014
Points : 45 102
Points : 45 102
live() permet que les élements créés dynamiquement héritent des évènements associés selon le selecteur jquery

par exemple si sur le selements de class .thisone tu mets un onclick sur le ready,
les elements créés dynamiqueemnt àprès ne beneficieront pas du onclick.
Il faudra declerer le onclick avec un live pour que les elements créés à posteriori aient le même onclick que ses collègues de même classe
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h41.


 
 
 
 
Partenaires

Hébergement Web