Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 19.10.2011 Ostrzeżenie: (0%)
|
Witam. Potrzebuję zrobić coś w stylu wyszukiwarki. Ma to być raczej filtrowanie już istniejących divów, dzięki czemu zaoszczędzę ludziom na przechodzeniu przez strony. Mam następujące inputy typów:
-name -selected x2 -number x2 -checkbox x25 Zacząłem od sprawdzania checkboxów. Myślałem, że sobie poradzę, ale to przekroczyło moje możliwości :< . Tutaj macie moje "testy": Kod <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><div> <form>Wyszukiwarka: <br><input class="find" type="text"><br> 1<input class="find" id="one" type="checkbox" checked="checked"> <br> 2<input class="find" id="two" type="checkbox" checked="checked"> </form> <div name="Osiem" class="one "> "Osiem" 1 </div> <div name="Troll" class="two "> "Troll" 2 </div> <div name="kabum" class="one two"> "kabum" 1 2</div> <div name=" " class="one two"> " " 1 2</div> </div> Kod $('.find').change(function() { if ( $("#one").is(':checked') ) { $('.one').show(); }else{ $('.one').hide(); } if ( $("#two").is(':checked') ) { $('.two').show(); }else{ $('.two').hide(); } }); Więc rezultat był dobry, gdy checkbox był jeden. Przy drugim zaczęły się koligować. I jedno zaprzeczało drugiemu. W ogóle nie współgrały, gdy np. 1 był zaznaczony a 2 odznaczony to 1 & 2 było ukryte. Pomóżcie mi zrobić coś by sam sprawdzał checkboxy. i te warunki z name by był podobny chociaż. Dwa numbery mają określać minimum i maximum. A selecty to samo co checkboxy. Pomóżcie!! |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 19.10.2011 Ostrzeżenie: (0%)
|
Przecież każdy div ma takie klasy, pod jakimi checkboxami ma się pokazywać. Np. "one two". Czyli klasa "one" i "two". Ale działa pod to co później odczytał JS. Czyli jeżeli div ma dwie klasy "one two" to ta w JS ostatnia czyli "two" zostaje przypisana do tego diva i nie reaguje on na na "one" :<. Udało mi się coś zrobić z kodem by nie musieć pisać do każdego checkbox'a:
Kod $('.find').change(function() { $(".find").each(function() { var id = $(this).attr('id'); if ( $(this).is(':checked') ) { $("." + id).show(); }else{ $("." + id).hide(); } }); }); Ale znowu to samo, po zaznaczeniu 1 nie reaguje div "one two" tylko 2 :< Podgląd działania, każda linia do DIV a treść to klasy jakimi jest obdarzony tylko w języku angielskim. Podbijam i proszę o pomoc. Rzecz jasna nie siedzę z założonymi rękoma i nie czekam na odpowiedź z kodem do skopiowania. Oto wynik moich starań. Według mnie wszystkie warunki są prawidłowe. Lecz nie działa jak powinien. Link do działa ten sam co powyżej. A oto kod źródłowy: Kod $('.find').change(function() {
var input; $(".find[type=checkbox]").each(function() { var id = $(this).attr('id'); if ( $(this).is(':checked') ) { $("." + id).show(); if( $("." + id).hasClass( input = $(".find[type=checkbox]").each() ) ){ if(input != id && $("#" + input).is(':checked') ){ $("." + input).show(); } if(input != id && $("#" + input).isnt(':checked') ){ $("." + input).hide(); } } }else{ $("." + id).hide(); if( $("." + id).hasClass( input = $(".find[type=checkbox]").each() ) ){ if(input != id && $("#" + input).is(':checked') ){ $("." + input).show(); } if(input != id && $("#" + input).isnt(':checked') ){ $("." + input).hide(); } } } }); }); |
|
|
|
Maxie [JavaScript] Plynne Filtrowanie div'ów w JQuery 13.01.2013, 17:20:36
sunpietro nadaj divom klasy i sprawdzaj czy dana klasa istni... 13.01.2013, 20:43:26
b4rt3kk Dzieję się tak, ponieważ kolejność wykonywania pęt... 15.01.2013, 02:20:33
Maxie Efekt nadal jest nie zadowalający. Poprawnie filtr... 16.01.2013, 16:27:16
amii hasclass zmień na hasClass
JS odróznia wielkość li... 16.01.2013, 17:23:28
Maxie Sukces! Dzięki wielkie amii. Przez ten kluczow... 16.01.2013, 18:30:23 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 07:09 |