Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Problem z podmianą koloru tła
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Fixus
Witam.
Posiadam listę czegokolwiek...np. produktów wygląda to np tak:
  1. <tr>
  2. <td>
  3. <div class="parzyste">biale tlo</div>
  4. </td>
  5. </tr>
  6. <tr>
  7. <td>
  8. <div class="nieparzyste">szare tlo</div>
  9. </td>
  10. </tr>
  11. <tr>
  12. <td>
  13. <div class="parzyste">biale tlo</div>
  14. </td>
  15. </tr>
  16. <tr>
  17. <td>
  18. <div class="nieparzyste">szare tlo</div>
  19. </td>
  20. </tr>

Do tej pory mój kod js wyglądał tak(do tej pory czyli zanim zostały wprowadzone napremienne klasy)
  1. onmouseover="this.style.backgroundColor='#2e6399';" onmouseout="this.style.backgroundColor='#f1f1f1';"

I wszystko było fajnie bo najeżdżałem było niebieskie, zjeżdżałem było białe, ale teraz jak najadę na szarą komórkę to jest ok bo jest niebieska, ale jak zjeżdżam to jest biała a nie szara sad.gif Skasowanie onmouseout nic nie da, bo biała zostanie ustawiona na szarą i tak zostanie. Nie wiem jak sobie z tym poradzić
piotrooo89
a nie można tego w css zrobić po co strzelać do muchy z armaty jak można łapką? użyj :hover i po sprawie.
Fixus
a czemu mam odciąć użytkowników IE6 od możliwości oglądania tego?
pseudoklasa :hover nie zadziała dla IE6. Dlatego nie skorzystam z tego.
nospor
bo to sie robi tak:
nie poprzez style, a poprzez dodatkową klasę.
Gdy najezdzasz na div nadajesz mu klase X (klasa ta ustawia kolor na taki jaki chcesz).
Gdy zjezdzasz z diva, zdejmujesz mu tą klase - dzieki temu znikają ustawienia nadane przez klase i pozostają te co byly do tej pory

proste, lekkie i przyjemne winksmiley.jpg
Fixus
ok, ale jak zdjąć klasę ? Umiałbym nadać mu nową klasę poprzez onmouseout...ale mam dwie różne klasy więc to nie przejdzie bo to dochodzi trzecia klasa. Pytanie jak zdjąć klasę a nie ustawić inna ?
nospor
podam ci kod jak ja to robie w jquery.
Nadaje klase dla tr i zdejmuje dla tr:
Kod
    $(".grid table tbody tr")
    .mouseover(function(){
        $(this).addClass('gridOver');
    })
    .mouseout(function(){
        $(this).removeClass('gridOver');
    });

I juz.
Moze ci sie przyda. Ogolnie polecam ci przejscie na jakiegos liba js - bedziesz mial latwiej
Fixus
no spróbuje to na js przerobic ale słabo to widzę.
apropo przesiadania się na liba, ja js ruszam od święta więc mnie to tak trochę bez sensu tongue.gif
erix
Jeśli nie nie dodajesz obiektów dynamicznie, to lepiej skorzystać z whatever:hover, niż faszerować osobnym JS-em. winksmiley.jpg
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.