Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] before i elementy "LI" oraz "A"
Forum PHP.pl > Forum > Przedszkole
wujek2009
Cześć.

Mam kod jQuery, który prezentuje się następująco:
  1. $(document).ready(function() {
  2. $("#menu ul li a").hover(function() {
  3. if ( $("#menu ul li a").hasClass('first') )
  4. $(this).before().css('background', 'url(\'' + base_url + 'img/background.jpg\') top left no-repeat');
  5. }, function() {
  6. $(this).before().css('background', 'none');
  7. });
  8. });


Problem polega na działaniu funkcji "before()" otóż nie cofa mnie do konkretnego elementu "li".
Background ustawia cały czas na element "a" - odnośnik. Dziwne jest to, że gdy zmienie z before() na next() to background nigdzie nie jest już dodawany.

Struktura kodu HTML:
  1. <div id="menu">
  2. <ul>
  3. <li><a href="#" class="first">home</a></li>
  4. <li><a href="#">kontakt</a></li>
  5. <li><a href="#">kawały</a></li>
  6. </ul>
  7. </div>


Co chce uzyskać? W tej chwili po najechaniu na element "li" robi się background dla elementu "a".
Jednak dla pierwszego elementu (z klasą "first") muszę dorobić drugi background, aby to wyglądało mniej więcej tak:
  1. <li style="background: url('... background.jpg') top left no-repeat;"><a href="#" class="first" style="background: url('menu_hover.jpg');">home</a>
prowseed
.parent() zamiast before()
wujek2009
Dziękuje za pomoc.

Pzdr.

PS. Kod z pierwszego postu miał jeszcze jedną wadę, otóż w warunku IF trzeba było zmienić
  1. if ( $("#menu ul li a").hasClass('first') )
na
  1. if ( $(this).hasClass('first') )


ponieważ przy obecnej strukturze to zawsze zwracało TRUE - ponieważ wśród elementów UL miałem klasę "first" - a ja chciałem sprawdzić czy konkretny element, który najechaliśmy ma klasę "first".

To taka informacja dla potomnych:-)
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.