Evo kako je tekao tok misli prilikom traganja za custom confirm dialogom…
Izrada custom confirm dialoga, ideja no.1
Znači, prva ideja je bila sljedeća:
- ajde da napravim u tom mom confirmation dialogu callback koji će pozivati onu funkciju unutar koje je konfirmacija ugnježdena.
- tako da rekurzivno pozovem istu funkciju, a samo u prvom prolazu ću paliti konfirmaciju
- u tom prvom prolazu ću uvijek abortati funkciju
- ako korisnik klikne TRUE, onda će putem callbacka funkcija pozvati sama sebe ponovno, a za drugi prolaz ću nariktati triger da se konfirmacija ne upali, što će spriječiti i abortanje funkcije.
- taj triger bi zakačio na jedan od parametara koji prima funkcija i stvar bi radila
Ima tu puno mana:
- Spomenuti prvi uvjet je bio ispunjen…snippet je zaista trebalo samo copy-paste
- Drugi uvjet nije baš bio idealan. u svakom snippetu je trebalo preimenovati funkciju koja se nalazi u callbacku i zadati joj iste one parametre koje je primila parent funkcija. To i nije tako strašan job, ali ipak minus.
Puno gora greška je bila u tome što se triger koji pazi da se konfirmacija ne upali u drugom prolazu, morao kačiti na jedan od parametara parent funkcije. A to već povlači za sobom moguće probleme…
Code:
function someParentFunkcion(a,b,c,f){
//some code before confirmation
if(!f.confirmed) {dialog({msg: "Želiš li nastaviti", onTrue:function(){f.confirmed=true, someParentFunkcion(a,b,c,f)}}); return;}
//some code after confirmation
}
Svejedno, ovo mi je radilo više nego zadovoljavajuće dugi niz godina
Nastavak slijedi…