Comment automatiser une fonction en JS ?

Solutions (1)
Tags :
  • Javascript
  • Php
  • Programmation
|
Salut à tous :) 
Je fais appel à votre aide, car je bloque un peu sur un des traitements..
J'ai en haut de ma page php des menus déroulant s'affichant de gauche à droite avec les années depuis 2010 et listant les mois. Ceci sert à rechercher et afficher des articles stockés en fonction de leur date de parution.
Dans la partie PHP, j'ai réussi à faire ça sans soucis, j'ai testé en changeant la date système en 2013 .. PAFFF (non ça ne fait pas des chokapiks .. mais ça fait bien apparaître un nouveau menu déroulant)
Pour chaque, j'ai des ID .. et j'ai une fonction dans un .JS qui lui est liée (J'ai simplement mis en place un jQuery dropDown menu)..

Le problème est le suivant .. j'ai actuellement le code ici :

  1. $(document).ready(function () {
  2. $("#2010").click(function () {
  3. $("#ul_2010").slideToggle('medium');
  4. });
  5. $("#2011").click(function () {
  6. $("#ul_2011").slideToggle('medium');
  7. });
  8. $("#2012").click(function () {
  9. $("#ul_2012").slideToggle('medium');
  10. });
  11. });


Que j'aimerais automatiser lui aussi.. car sans le code de 2013, le div sera inactif ;) 
Un grand merci à vous!

Ah, j'allais oublier .. voilà le code PHP :
  1. <table id="years">
  2. <tr>
  3. <!-- FIRST YEAR -->
  4. <?php
  5. $firstYearToDisplay=2010;
  6. for($yearToDisplay=$firstYearToDisplay;$yearToDisplay<=date("Y");$yearToDisplay++){
  7. echo '<td>';
  8. echo '<div>'; ?>
  9. <div class="menu_class" id="<?php echo $yearToDisplay; ?>"><div class="displayDate"><?php echo $yearToDisplay; ?></div>
  10. <ul class="the_menu" id="ul_<?php echo $yearToDisplay; ?>"> <?php
  11. for ($monthToDisplay = 1; $monthToDisplay <= 12; $monthToDisplay++){?>
  12. <li id="<?php echo $monthToDisplay.'-'.$yearToDisplay; ?>"><a href="./index.php?m=<?php echo $monthToDisplay ?>&y=<?php echo $yearToDisplay ?>"><?php echo $months[$monthToDisplay];?></a></li> <?php
  13. }
  14. echo '</ul>';
  15. echo '</div>';
  16. echo '</td>';}
  17. ?>
  18. </tr>
  19. </table>
  • Meuniers a édité ce message
Contenus similaires
Score
0
òh
òi
, Modérateur |
Salut,

Vu que tes <div> ont la même classe, tu peux directement sélectionner tous tes <div> et exécuter le code pour tous.
Ca doit donner quelque chose dans ce genre :
  1. $(document).ready(function () {
  2. $(".menu_class").each(function (index) {
  3. $(this).click(function() {
  4. $(this).find('ul').slideToggle('medium');
  5. });
  6. });
  7. });

  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS