Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] addEventListener
Forum PHP.pl > Forum > Przedszkole
Wieviór
Stwierdziłem ostatnio, że przerzucę się na nieinwazyjny JavaScript i przestanę w kodzie HTML używać onclick, onmouseover czy innych.

Używam addEventListener. Kod mam taki:

  1. function overW3c() { document.getElementById('loga_w3c').src="strona/loga_w3c_on.gif"; }
  2. function outW3c() { document.getElementById('loga_w3c').src="strona/loga_w3c.gif"; }
  3. function load()
  4. {
  5. document.getElementById('loga_w3c').addEventListener("mouseover", overW3c, false);
  6. document.getElementById('loga_w3c').addEventListener("mouseout", outW3c, false);
  7. }


To jest w pliku main.js, który wrzucam do pliku index.html, w którym mam:

  1. <body onload="load();">
  2. <a href="http://validator.w3.org/check?uri=referer"><img id="loga_w3c" src="strona/loga_w3c.gif" alt="Valid HTML 4.01 Transitional"></a>
  3. </body>


No i wszystko fajnie działa, tylko rozwiązanie to jest stosunkowo słabe. Co będzie jeśli takich obrazków zmieniających się po najechaniu będę chciał mieć np. 10? Bezsensu pisać dla każdego funkcję. Lepszym rozwiązaniem byłaby funkcja over(id), która dla podanego id by przekazywała, który element i na co zamienić po najechaniu.

Niestety gdy tak próbuję, to już addEventListener nie działa... ktoś ma jakiś pomysł?
batman
Cytat(Wieviór @ 9.12.2008, 11:49:26 ) *
... ktoś ma jakiś pomysł?

Ja mam - jQuery.
Wieviór
jQuery, jQuery. Akurat tworzę małą stronę i bibliotek jQuery wolałbym nie dodawać. Szukam innego rozwiązania mimo wszystko ;]
erix
  1. <body onload="load();">
  2. <a href="http://validator.w3.org/check?uri=referer"><img id="loga_w3c" src="strona/loga_w3c.gif" alt="Valid HTML 4.01 Transitional"></a>
  3. </body>

Sory, ale sam sobie przeczysz; body onload.

Poza tym, addEventListener nie jest obsługiwany przez IE. Najlepiej byłoby tu faktycznie skorzystać z jQuery, skoro Ci tak zależy na rozmiarze, to go odpowiednio okroić, aby zostały tylko potrzebne Ci metody.

Widać, mało Googlałeś, bo znalazłem coś takiego:
  1. http://kurs.browsehappy.pl/Bugi/AddEventListener
  2. http://www.quirksmode.org/js/events_advanced.html
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.