Jquery click/show/hide
Fermé
Marc
-
Modifié par Marc le 30/12/2014 à 15:28
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 3 janv. 2015 à 15:41
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 3 janv. 2015 à 15:41
A voir également:
- If show jquery
- Show key plus - Télécharger - Utilitaires
- Telecharger usb show - Télécharger - Sauvegarde
- Smart show 3d - Télécharger - Visionnage & Diaporama
- Pro show - Télécharger - Visionnage & Diaporama
- Problème affichage data show - Forum Format et connectique vidéo
3 réponses
J'ai une autre question qui me vient à l'esprit:
J'ai placé mes titres dans une section avec un id comme suit:
j'ai d'autres pages HTML avec la même structure (une section avec un autre id, suivi de mes titres) pour lesquelles je souhaite appliquer mon script. Comment dois-je m'y prendre pour créer un appel à ce script en lui passant en paramètre l'id de la section en question?
Merci
J'ai placé mes titres dans une section avec un id comme suit:
<section id="production"> <h4 id="elem1" class="drop">Titre 1</h4> <h4 id="elem2" class="drop">Titre 2</h4> <h4 id="elem3" class="drop">Titre 3</h4> </section>
j'ai d'autres pages HTML avec la même structure (une section avec un autre id, suivi de mes titres) pour lesquelles je souhaite appliquer mon script. Comment dois-je m'y prendre pour créer un appel à ce script en lui passant en paramètre l'id de la section en question?
Merci
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
Modifié par animostab le 1/01/2015 à 16:10
Modifié par animostab le 1/01/2015 à 16:10
Salut
utiliser des id n'est pas indispensable et rallonge inutilement le code
tu pourrais utiliser $(this).next() pour sélectionner le paragraphe qui suit le titre h4 sans meme qu'il y ait un id ou meme une class
http://jquery.developpeur-web2.com/documentation/parcours/next.php
de plus tu pourrais faire un petit effet d'apparition ou de slide avec slideUp et slideDown ou animate
voici un exemple
tu mets la class titre à tes h4 et la class text à tes paragraphes
dans ton css tu mets tes .text en display:none; et opacity:0.4;
et le jquery
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
utiliser des id n'est pas indispensable et rallonge inutilement le code
tu pourrais utiliser $(this).next() pour sélectionner le paragraphe qui suit le titre h4 sans meme qu'il y ait un id ou meme une class
http://jquery.developpeur-web2.com/documentation/parcours/next.php
de plus tu pourrais faire un petit effet d'apparition ou de slide avec slideUp et slideDown ou animate
voici un exemple
tu mets la class titre à tes h4 et la class text à tes paragraphes
dans ton css tu mets tes .text en display:none; et opacity:0.4;
et le jquery
$(document).ready(function(){$(".titre").click(function()
{$(".text").animate({opacity:.4},100).slideUp("300").delay("400");
if(!$(this).next().is(":visible")){$(this).next().slideDown("500").animate({opacity:1},1e3)}
if($(this).next().is(":hidden")){$(this).next().css("opacity","0.4")}
})});
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
Exact, je me disais bien qu'il était possible de contourner les id, je n'avais pas penser à la fonction next(). Je viens de tester ça fonctionne très bien, merci.
Sinon, est-ce possible d'avoir une aide concernant mon précédent post:
"J'ai placé mes titres dans une section avec un id comme suit:
j'ai d'autres pages HTML avec la même structure (une section avec un autre id, suivi de mes titres) pour lesquelles je souhaite appliquer mon script. Comment dois-je m'y prendre pour créer un appel à ce script en lui passant en paramètre l'id de la section en question?"
Merci
Sinon, est-ce possible d'avoir une aide concernant mon précédent post:
"J'ai placé mes titres dans une section avec un id comme suit:
<section id="production"> <h4 id="elem1" class="drop">Titre 1</h4> <h4 id="elem2" class="drop">Titre 2</h4> <h4 id="elem3" class="drop">Titre 3</h4> </section>
j'ai d'autres pages HTML avec la même structure (une section avec un autre id, suivi de mes titres) pour lesquelles je souhaite appliquer mon script. Comment dois-je m'y prendre pour créer un appel à ce script en lui passant en paramètre l'id de la section en question?"
Merci
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
Modifié par animostab le 3/01/2015 à 15:48
Modifié par animostab le 3/01/2015 à 15:48
solution préconisée
mets une class à tes h4 (la meme pour toutes les pages) et une classe a tes p (enfin ceux ou tu veux que le script s'applique) puis applique le jquery sur ces class ca sera plus facile a gérer si ton site prend plus de pages
donc le parent #production tu t'en fiche en fait.
sinon il y la solution (pas recommandée)
$("#production h4, #production1 h4, #production2 h4, #production3 h4").click(function() ...etc
mais chaque fois que tu rajouteras une page ou des sections avec des id différentes il faudra rajouter ca dans ton js. donc à la longue ce n'est pas vraiment recommandé de faire ainsi.
apres le mieux avec la solution 1
tu mets le srcipt dans un fichier js tu le mets dans un dossier nommé js et tu l'appelle comme ca pour chaque page ou tu en as besoin
<script src="js/monjs.js"></script> et evidemment avant tu appelles jquery
Ainsi en cas de trnsformation tu as un seul fichier a gerer
tu peux aussi regrouper tous tes js dans un seul fichier et le minifier
mets une class à tes h4 (la meme pour toutes les pages) et une classe a tes p (enfin ceux ou tu veux que le script s'applique) puis applique le jquery sur ces class ca sera plus facile a gérer si ton site prend plus de pages
donc le parent #production tu t'en fiche en fait.
sinon il y la solution (pas recommandée)
$("#production h4, #production1 h4, #production2 h4, #production3 h4").click(function() ...etc
mais chaque fois que tu rajouteras une page ou des sections avec des id différentes il faudra rajouter ca dans ton js. donc à la longue ce n'est pas vraiment recommandé de faire ainsi.
apres le mieux avec la solution 1
tu mets le srcipt dans un fichier js tu le mets dans un dossier nommé js et tu l'appelle comme ca pour chaque page ou tu en as besoin
<script src="js/monjs.js"></script> et evidemment avant tu appelles jquery
Ainsi en cas de trnsformation tu as un seul fichier a gerer
tu peux aussi regrouper tous tes js dans un seul fichier et le minifier
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
Modifié par jordane45 le 30/12/2014 à 15:58
Modifié par jordane45 le 30/12/2014 à 15:58
Bonjour,
Il faut déjà mettre des ID à tes éléments.. sinon. impossible de les "localiser"..
Voila :
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Il faut déjà mettre des ID à tes éléments.. sinon. impossible de les "localiser"..
Voila :
<html> <head> <title> TEST </title> <!-- Import du JQUERY --> <script src="jquery/jquery.1.11.2.js"></script> </head> <body> <pre> <h4 id="elem1" class="drop">Titre 1</h4> <h4 id="elem2" class="drop">Titre 2</h4> <h4 id="elem3" class="drop">Titre 3</h4> </pre> <script type="text/javascript"> $(function() { $(".drop").each(function(){ var idP = $(this).attr('id'); var p = "<p id='P_"+idP+"'>Mon paragraphe " + idP + "</p>"; $(this).after(p); }); $("p").css("display", "none"); $(".drop").click(function() { $('p').hide(); var id = $(this).attr('id'); $("#P_"+id).show(); }); }) </script> </body> </html>
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane