2009-08-04 6 views
1

5 scripts diffrent à la page, qui font tous la même:Marque Je script jquery global

<script language="javascript"> 
     $(document).ready(function(){ 
      $(".hideshow-news").hide(); 
      $(".roll-li-news").click(function(){ 
       if ($(".hideshow-news").is(":hidden")) { 
        $(".hideshow-news").slideDown("slow"); 
        $(".roll-li-news").removeClass('inactive'); 
       } 
       else { 
        $(".hideshow-news").slideUp("slow"); 
        $(".roll-li-news").addClass('inactive'); 
       } 
      }); 
     }); 
    </script> 
    <script language="javascript"> 
     $(document).ready(function(){ 
      $(".hideshow-users").hide(); 
      $(".roll-li-users").click(function(){ 
       if ($(".hideshow-users").is(":hidden")) { 
        $(".hideshow-users").slideDown("slow"); 
        $(".roll-li-users").removeClass('inactive'); 
       } 
       else { 
        $(".hideshow-users").slideUp("slow"); 
        $(".roll-li-users").addClass('inactive'); 
       } 
      }); 
     }); 
    </script> 
    <script language="javascript"> 
     $(document).ready(function(){ 
      $('.hideshow-pages').hide(); 
      $('.roll-li-pages').click(function(){ 
       if ($(".hideshow-pages").is(":hidden")) { 
        $(".hideshow-pages").slideDown("slow"); 
        $(".roll-li-pages").removeClass('inactive'); 
       } 
       else { 
        $(".hideshow-pages").slideUp("slow"); 
        $(".roll-li-pages").addClass('inactive'); 
        } 
      }); 
     }); 
    </script> 

Y at-il un moyen de rendre ces 5 scripts globaux et les rejoindre dans un script? J'ai fait différentes classes car mon menu a été ouvert sur de nombreux spots.

Merci pour l'aide.

+1

-1 pour ne pas avoir lu les documents d'une bibliothèque avant de l'utiliser. Désolé, vous êtes un débutant, mais vous auriez vraiment pu faire cela. – Boldewyn

+0

@ Boldewyn, vous avez raison. Cependant, en ce moment, la seule chose qui m'importe est que la chose fonctionne vraiment bien. Merci quand même pour avoir regardé une question stupide. À la votre! – AnzeT

Répondre

0

Une résolution rapide à votre problème suit. Supprimez tous les tags et contenus de script et ajoutez-les simplement dans votre document de préférence dans la section <head></head>.

<script language="javascript"> 
    $(document).ready(function(){ 

     var arr = {"news", "pages", "users"}; 
     var x; 
     for (x in arr){ 
     $(".hideshow-"+x).hide(); 

     $(".roll-li-"+x).click(function(){ 
      if ($(".hideshow-"+x).is(":hidden")) { 
      $(".hideshow-"+x).slideDown("slow"); 
      $(".roll-li-"+x).removeClass('inactive'); 
      }else { 
      $(".hideshow-"+x).slideUp("slow"); 
      $(".roll-li-"+x).addClass('inactive'); 
      } 
     }); 
     } 
    }); 
</script> 

Cela devrait faire ce dont vous avez besoin, mais je ne l'ai pas testé. Si vous avez d'autres endroits que vous utilisez cette même structure avec, modifier le tableau comme celui-ci:

var arr = {"news", "pages", "users", "members", "others"}; 

mais comme Boldewyn dit que vous devriez aller au-dessus de base plus.

Espérons que ça aide, Sinan.

+0

Merci! Excellente solution, et oui comme vous l'avez dit, je devrais m'asseoir et jeter un bon coup d'œil à jQuery! Merci encore. – AnzeT

1

Oui, supprimez les quatre dernières balises de script et utiliser this selector dans la première:

".hideshow-news, .hideshow-users, .hideshow-pages" 
+0

ce n'est pas aussi simple que de changer le sélecteur de racine, l'événement click nécessitera un peu de retouche aussi, mais c'est fondamentalement un bon début oui – Sander

+0

Remplacer .click() avec .toggle() – Soviut