[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 07.10.13
Príspevky: 63
Témy: 20 | 20
Bydlisko: Košice
NapísalOffline : 06.06.2009 16:31 | onresize

Mal som kod:
Kód:
...
  <head>
....
    <script type="text/javascript" language="javascript">
      window.onresize = resize();
    </script>
....
  </head>
  <body>
...


Pricom funkcia resize bola definovana v externom js subore a bolo tam "alert(123);". Pri spusteni stranky sa funkcia resize zavolala este pred nacitanim obsahu a pri zmene velkosti okna sa uz nespustila. Dost som si lamal hlavu preco... Hladal som a skusil som podla jednej stranky napisat anonymnu funkciu:

Kód:
...
  <head>
....
    <script type="text/javascript" language="javascript">
      window.onresize = function() { alert(123); };
    </script>
....
  </head>
  <body>
...


Po tomto uz vsetko islo spravne, kod sa nenacital pred nacitanim obsahu stranky a pri zmene velkosti okna sa spravne nacital. Mam to teda chapat, ze do window.onresize nemozem davat volania obycajnych funkcii alebo som urobil ja niekde inde chybu?? Funkciu "resize()" totiz budem volat viackrat a je dost rozsiahla a mat ju napisanu priamo v kode a este raz definovanu aj v js subore je dost skarede :)


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 07.06.2009 0:34 | onresize

Kód:
window.onresize = resize();
nie je to isté ako
Kód:
window.onresize = function() { alert(123); };
V tom prvom prípade priraďuješ do onresize návratovú hodnotu tej funkcie resize (v podstate si ju hneď zavolal a do on resize si vložil nejakú hlúposť).
V tom druhom si do onresize pridal odkaz na anonymnú funkciu.

Teda:
Aby bolo to prvé rovnaké ako to druhé, nesmieš tam dávať () (a teda do onresize priradíš odkaz na tú funkciu) a bude to vyzerať takto:
Kód:
window.onresize = resize;
Ak by si ale chcel (vlastne to ty nechceš, ale píšem to len pre úplnosť) aby to druhé robilo to, čo teraz robí ten prvý príklad, musel by si tam mať toto:
Kód:
window.onresize = function() { alert(123); }();


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 07.10.13
Príspevky: 63
Témy: 20 | 20
Bydlisko: Košice
Napísal autor témyOffline : 09.06.2009 18:15 | onresize

fakt dakujem, na toto by som asi tak skoro neprisiel :D


Offline

Užívateľ
Užívateľ
onresize

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 09.06.2009 22:19 | onresize

a ako by som pouzil toto:
Kód:
window.onresize = resize;

keby som chcel do tej funkcie dat parametre?


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 13.06.2009 0:12 | onresize

Aké parametre? Inak asi najjednoduchšie riešenie je to s tou anonymnou funkciou.


Offline

Čestný člen
Čestný člen
onresize

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 14.06.2009 19:09 | onresize

Blackshadow píše:
a ako by som pouzil toto:
Kód:
window.onresize = resize;

keby som chcel do tej funkcie dat parametre?
Uz si na to prisiel? Skus toto:
Kód:
window.onresize = function() { resize( argumenty ); }


Offline

Užívateľ
Užívateľ
onresize

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 14.06.2009 19:41 | onresize

aha, no joo :) ja som to neriesil, len som sa pytal, bol som zvedavy...


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
 [ Príspevkov: 7 ] 


onresize




© 2005 - 2026 PCforum, edited by JanoF