[ Bope @ 16.11.2010. 23:20 ] @
"Klasican" ajax:

Code:
xmlhttp.onreadystatechange = function() {
...
}


e sad, moje pitanje je, kako da omogucim da onreadystatechange poziva neku ne anonimnu funkciju? Nesto tipa

Code:
xmlhttp.onreadystatechange = mojaFunkcija(5);


Zelim da napravim jednu funkciju koja bi reagovala na vise onreadystatechange dogadjaja.

P.S. Ni sledeci nacin ne daje rezultate
Code:
xmlhttp.onreadystatechange = function() {
mojaFunkcija();
}
[ Aleksandar Ružičić @ 16.11.2010. 23:40 ] @
prvo sto mi je palo na pamet:
Code (javascript):

var ajax_callbacks = { ready: [] };

...
xmlhttp.onreadystatechange = function() {
  for (var i = 0; i < ajax_callbacks.ready.length; i++) {
     ajax_callbacks.ready[i].apply(this, arguments);
  }
}
...

// prva fja
ajax_callbacks.ready.push(function(){
   // ...
});

// druga fja
ajax_callbacks.ready.push(function(){
   mojaFunkcija(5);
});

// treca fja
ajax_callbacks.ready.push(mojaFunkcija);
 


naravno ovo nije i najbolje resenje, ali je valjda dosta za pocetak :)
[ Aleksandar Ružičić @ 16.11.2010. 23:43 ] @
aha, nisam pazljivo citao...
tebi treba ovo:
Code (javascript):

xmlhttp.onreadystatechange = function() {
  mojaFunkcija.apply(this, arguments); // pozivamo fju u istom contextu i sa istim argumentima
}
 
[ Bope @ 17.11.2010. 00:02 ] @
Hvala :D
Ovaj prvi primer mi nije bas radio pa sam "stelovao" dok nisam procitao ovaj drugi primer :)

btw, zaboravio sam da napomenem da ta "mojaFunkcija" prima vise argumenata, ali citajuci help za "apply" skapirao sam da argumente zapakujem kao niz :) Hvala, ipak sam JavaScript pocetnik, ovoga se nikad ne bih setio :)