[ 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 :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.