Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Plynne Filtrowanie div'ów w JQuery
Maxie
post
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!!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Maxie
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 19.10.2011

Ostrzeżenie: (0%)
-----


Efekt nadal jest nie zadowalający. Poprawnie filtruje natomiast jak zaznaczam tylko jeden checkbox. Np. gdy zaznaczam tylko 1 pokazują się "one", "one two" itp, ale gdy włączę np. 2 lub 3 nic się nie zmienia.
http://jsbin.com/welcome/73833/watch

Wykombinowałem jak mogę przekazywać ilość zaznaczonych checkbox'ów o ID takich jak nazwy klas. Lecz coś tam nadal nie gra. Pętla sprawdza tylko pierwszego div'a nie wiem czemu. Patent wykombinowany, gorzej z poprawnością kodu. Proszę pomóżcie mi odnaleźć błędy!

Kod
$('.checkme').each(function() {
    
    $(this).attr('value', '0');
    
  });

$('.find').change(function() {
  
$('div.checkme').each(function() {

  div = $(this);
  value = $(this).attr('value');
  
    $('.find[type="checkbox"]').each(function() {
    check = $(this);
    
    if( div.hasclass( check.attr('id') )){
      
      if( check.attr('checked', 'checked')){
    
        value = value + 1;
        
      }
    }
  

  });
  
  div.attr('value', value);
  
  if( div.attr('value', '0') ){
    
      div.hide();
      
    }else{
    
      div.show();
      
   }
    
});

});


Ten post edytował Maxie 16.01.2013, 16:32:08
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 19:45