Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][JavaScript] Problem z onmouseover i out przy window.onload
thomson89
post
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Witam!

Mam prosty kodzik w js:
  1. window.onload = podlinkuj;
  2.  
  3. function podlinkuj()
  4. {
  5. document.getElementById('login').onmouseover = zmienOpis('1');
  6. document.getElementById('login').onmouseout = zmienOpis('0');
  7. document.getElementById('imie').onmouseover = zmienOpis('2');
  8. document.getElementById('imie').onmouseout = zmienOpis('0');
  9. }
  10.  
  11. function zmienOpis(liczba)
  12. {
  13. var opis = document.getElementById('opis_form');
  14. var opisy = new Array('', 'jakis opis jeden', 'jakis opis dwa');
  15. opis.innerHTML = opisy[liczba];
  16. }


Który nie działa prawidłowo.

Po wczytaniu strony funkcja zmienOpis(); jest wykonywana mimo warunku onmouseover. Dlaczego tak się dzieje?


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
ziqzaq
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Pierwsza rzecz:
[JAVASCRIPT] pobierz, plaintext
  1. var opisy = new Array('', 'jakis opis jeden', 'jakis opis dwa');
[JAVASCRIPT] pobierz, plaintext

Powyższa tablica ma indeksy liczbowe więc nie możesz przekazywać do funkcji ciągu znaków (np. '1') i robić "opisy[liczba];" bo twoja "liczba" to nie jest liczba tylko numeryczny ciąg znaków.
Druga sprawa:
[JAVASCRIPT] pobierz, plaintext
  1. // 2a.
  2. document.getElementById('login').onmouseover = zmienOpis('1');
  3. // 2b.
  4. document.getElementById('login').onmouseover = zmienOpis;
  5. // 2c.
  6. document.getElementById('login').onmouseover = function () { zmienOpis(1) };
[JAVASCRIPT] pobierz, plaintext

ad. 2a) To jest wywołanie fukcji. Dlatego wykonuje ci się ona przy załadowaniu strony.
ad. 2b) To jest przekazanie referencji do funkcji. Wykona się ona przy zdarzeniu onmouseover. Niestety nie jestem specem od JS, ale chyba nie da się przekazać argumentów do tej funkcji.
ad. 2c) Tutaj też referencja tylko do anonimowej funkcji by można było wywołać twoją funkcję z odpowiednim argumentem (zauważ, że argumentem jest liczba).

Po lekkich przeróbkach (wyżej masz wskazówki) skrypcik będzie "chulał jak ta lala". winksmiley.jpg
Pozdrawiam.
Go to the top of the page
+Quote Post
thomson89
post
Post #3





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Dziekuję. Działa.


--------------------
Sklep 70%
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 00:52