Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQUERY] Wielokrotne uzycie skryptu
Forum PHP.pl > Forum > Po stronie przeglądarki
jerry89
Witam, posiadam nastepujacy kod skryptu w jquery,działa on prawidłowo:
Kod
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
   $("#link:not(:first)").hide();
   $("#link").click(function(){
      var t=$(this).parent().next();
      var v=t.is(":visible");
      $("#more:visible").slideUp("slow");
      if(!v)t.slideDown("slow");
      return false;
   });
});
</script>

Problem w tym ze kodu muszę uzyc kilka razy na jednej stronie, jednak jak to zrobic? Zmienne tutaj są statyczne i jak stworze kilkukrtotnie np chowające sie menu(uzywajac zmiennej link i more jak w skrypcie) o takiej samej nazwie to zadziała tylko jedno z nich(to pierwsze) reszta po prostu nie zadziała. Jak to rozwiazac? Raczej rozwiazaniem nie jest napisanie kilkukrotne tego samego skryptu zmianiając nazwy zmiennych.
Proszę o pomoc.
nospor
o funkcjach nie slyszal?
Kod
<script type="text/javascript">
function xyz(id){
   $("#"+id+":not(:first)").hide();
   $("#"+id).click(function(){
      var t=$(this).parent().next();
      var v=t.is(":visible");
      $("#more:visible").slideUp("slow");
      if(!v)t.slideDown("slow");
      return false;
   });

}

$(document).ready(function(){
xyz('link');
xyz('inne_id');
});
</script>
jerry89
No dzięki,
zrobiłem to w ten sposób:
Kod
<script type="text/javascript">
function xyz(id,id2){
   $("#link"+id+":not(:first)").hide();
   $("#link"+id).click(function(){
      var t=$(this).parent().next();
      var v=t.is(":visible");
      $("#more"+id2+":visible").slideUp("slow");
      if(!v)t.slideDown("slow");
      return false;
   });

}

$(document).ready(function(){
xyz('1','1');
xyz('2','2');
xyz('0','0');
xyz('3','3');
xyz('4','4');
xyz('5','5');
xyz('6','6');
xyz('7','7');
xyz('8','8');
xyz('9','9');
});
</script>

A nastepnie w php dałem while przy wypisywaniu i kolejno link$id zwiekszałem zmienna o 1. Działa jak nalezy ale czy jest to dobre rozwiązanie? Nie da sie jakoś krócej?
bartg
Daj jakis inny artybut na przykład class="chowaj" do elementu
a potem podobnie jak teraz tylko kożystasz z pętli
$('div.chowaj').each(function () {});
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.