Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Show/Hide który schować atrybut data
Forum PHP.pl > Forum > Przedszkole
Czikusek
Napisałem sobie prostą listę kategorii: (czy kategorie powinny być na <li> ?)

  1. <div class="item"><a href="#" title="" data-id="1">1</a></div>
  2. <div class="item"><a href="#" title="" data-id="2">2</a></div>


chce osiągnąć taki efekt, że po kliknięciu na kategorię pokaże się lista subkategorii do TEJ kategorii, dlatego dodałem znaczniki data.

Później mam listę subkategorii:

  1. <div class="subcategories-list" data-subcategory="1" style="display: none;">
  2.  
  3. aaaaaaaaaaaaa
  4.  
  5. </div>


No i chcę żeby działało:

  1. $('.maincategories a').click(function(){
  2. var clicked = $(this).data("id");
  3. $('.subcategories-list[data-subcategory="'+clicked+'"]').show();
  4. });


i działa... rozwija mi listę subkategorii z tym że nie chowa poprzedniej. Jak to zrobić?
trueblue
A dlaczego miałoby chować?
Przy kliknięciu najpierw schowaj wszystkie.
Czikusek
A jak schować wszystkie? wrzuciłem je w diva .subcategories i w jquery dałem $('.subcategories').hide(); i nie trybi. Nawet wtedy nie pokazuje klikniętej kategorii.

Próbuje zrobić taki efekt jak jest na sprzedajemy.pl
trueblue
A dlaczego nie $('.subcategories-list').hide()?
Czikusek
O jezu... biggrin.gif dobra nie było tematu biggrin.gif

To zapytam teraz tak. Mam 4 kategorie w rzędzie:

[kategoria1] [kategoria2] [kategoria3] [kategoria4]
--- tu chciałbym pokazać subkategorie do powyższych
[kategoria5] [kategoria6] [kategoria7] [kategoria8]
--- tu chciałbym pokazać subkategorie do powyższych

Jak to zrobić? nie mam pomysłu sad.gif
trueblue
Pokazać po kliknięciu?
Jeśli kliknę na kategoria6, to zobaczę podkategorie dla tej kategorii oraz kategoria5, kategoria7 i kategoria8?
Czikusek
No właśnie tylko że, mam te kategorie główne

  1. <div class="item"><a href="#" title="" data-id="1">1</a></div>
  2. <div class="item"><a href="#" title="" data-id="2">2</a></div>
  3. <div class="item"><a href="#" title="" data-id="3">3</a></div>
  4. <div class="item"><a href="#" title="" data-id="4">4</a></div>
  5. <div class="item"><a href="#" title="" data-id="5">5</a></div>
  6. <div class="item"><a href="#" title="" data-id="6">6</a></div>
  7. <div class="item"><a href="#" title="" data-id="7">7</a></div>
  8. <div class="item"><a href="#" title="" data-id="8">8</a></div>


A pod spodem subkategorie. Jak teraz wrzucić pod kategorie 1-4 subkategorie jeśłi sie na nie kliknie?

I dodatkowo jak po kliknięciu jeszcze raz w tą samą kategorie ją schować? bo teraz kliknie - otwiera się, ale jak znowu kliknę to już sie nie chowa.
trueblue
Jeśli kliknę w kategorię z data-id="1", to co ma się stać?
Mam wrażenie, że piszesz o problemie zwizualizowania tego, a nie oprogramowania. Jeśli tak jest, to po prostu wstaw podkategorie za każdą co czwartą kategorię.
Czikusek
To jak klikniesz raz to ma się pokazać subkategoria. Jak klikniesz drugi raz to ma się schować. Teraz się nie chowa. Chodzi mi o efekt toggle (dosłownie)
trueblue
Efekt toggle, dosłownie: http://api.jquery.com/toggle/
Czikusek
To dałem toggle() i nie działa. Otwiera, ale już nie zamyka po ponownym kliknięciu. Więc? Wszystko przez to hide(). Jak to pogodzić ze sobą?
trueblue
Na klikniętej robisz toggle, na pozostałych robisz hide. W czym problem?
Czikusek
  1. $(document).ready(function(){
  2.  
  3. $('.maincategories a').click(function(){
  4. $('.subcategories-list').hide();
  5. var clicked = $(this).data("id");
  6. $('.subcategories-list[data-subcategory="'+clicked+'"]').toggle();
  7. });
  8.  
  9.  
  10. });


I tak jak pisałem... nie działa zwinięcie
trueblue
  1. $('.maincategories a').click(function(e){
  2. var clicked = $(this).data("id");
  3. $('.subcategories-list:not([data-subcategory="'+clicked+'"])').hide();
  4. $('.subcategories-list[data-subcategory="'+clicked+'"]').toggle();
  5. });
  6.  
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.