Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] addEventListener, Zmienna przekazana w funkcji?
-Wieviór-
post
Post #1





Goście







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ł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(Wieviór @ 9.12.2008, 11:49:26 ) *
... ktoś ma jakiś pomysł?

Ja mam - jQuery.
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #3





Goście







jQuery, jQuery. Akurat tworzę małą stronę i bibliotek jQuery wolałbym nie dodawać. Szukam innego rozwiązania mimo wszystko ;]
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  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


Ten post edytował erix 9.12.2008, 17:20:44
Go to the top of the page
+Quote Post

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: 4.10.2025 - 10:09