SanchoDellaVega Posté 13 Octobre 2010 Posté 13 Octobre 2010 Bonjour à tous, Voici ma problématique, sur mon site, j'ai fait un popup sur clic d'un lien 'voir le détail' avec un effet de fondu en utilisant jquery (si le terme popup ne convient pas, parlons plutôt de fenêtre modale). J'ai cherché pas mal de tuto mais à chaque fois, l'utilisation de jquery se bornait à faire apparaître un formulaire de contact ou des choses dans le style. Bref, des choses non dynamiques. A force de tripatouiller, j'ai réussi à faire ce que je voulais, mais je m'y suis pris d'une manière qui je pense n'est pas très conventionnelle : Sur chargement de la page principale, il y a un div vide qui attend bien sagement dans son coin. Sur clic de "voir le détail", je lance une requête ajax qui récupère les infos en base de données et je remplis le div en question. Puis je monte le tout avec un effet jquery. ma question 1 est la suivante : certes ça marche mais est-ce que c'est la bonne manière ? n'y at-il pas une manière plus robuste ? Car j'avais des doutes jusqu'à ce matin, au moment ou j'ai voulu rajouter un lightbox jquery sur des photos contenus dans mon popup. Et là impossible. ma question 2 est donc : est-il possible de "superposer" des effets jquery ? merci d'avance pour vos réponses
captain_torche Posté 13 Octobre 2010 Posté 13 Octobre 2010 Dans l'idéal, il faudrait créer le div directement dans le javaScript (et le supprimer à la fermeture de la fenêtre). Par contre, je ne comprends pas ce que tu veux dire par "superposition d'effets"
SanchoDellaVega Posté 13 Octobre 2010 Auteur Posté 13 Octobre 2010 le terme superposition est peut-être mal choisi. En fait, il y a un premier appel jquery qui fait apparaître le div (mon premier effet) Ensuite, il devrait y avoir un second appel jquery sur des éléments du div récemment apparus (mon second effet)
captain_torche Posté 13 Octobre 2010 Posté 13 Octobre 2010 Si les éléments ont été créées proprement (Qu'ils sont présents dans le DOM, donc logiquement oui s'ils ont été créés avec jQuery), il ne devrait pas y avoir de souci.
paolodelmare Posté 13 Octobre 2010 Posté 13 Octobre 2010 Pas certain d'avoir compris ton pb, mais voici un écueil courant. Quand tu ajoutes des éléments dans le dom, le js déjà présent ne s'y applique pas. Il faut utiliser .live() ou .delegate()(aka event delegation).
Ernestine Posté 13 Octobre 2010 Posté 13 Octobre 2010 En effet, les fonctions jquery ne s'appliquent qu'aux éléments qui sont dans la page dès le départ, et non pas aux éléments qui sont ajoutés ensuite. Pour y remédier, comme dit Paolo, il y a la fonction live() : http://api.jquery.com/live/
SanchoDellaVega Posté 13 Octobre 2010 Auteur Posté 13 Octobre 2010 (modifié) effectivement mon problème vient de là (bien que je viens de réussir à avoir un semblant de résultat, mais le popup de l'image vient derrière le popup de la fiche au lieu de passer par dessus). Bref si une fonction toute prête existe, je vais l'utiliser, car trop de bidouille tue la bidouille. merci pour votre aide ! Modifié 14 Octobre 2010 par SanchoDellaVega
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant