|
(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
01. 11. 2012. | #1 |
emperor Selassie
Grand Master
|
jQuery .data ne pamti vrednost pri promeni konteksta
Situacija je sledeća: Imam više slika na stranici, klikom na njih otvaram dijalog (klasičan lightbox/iframe) za upload nove slike. Kada se izabere slika vrši se klasičan upload i na toj stranici se ispisuje JS kod koji menja sliku na koju je kliknuto.
HTML: HTML kôd:
<img src="default-thumb.jpg" data-big="default.jpg" /> <img src="default-thumb.jpg" data-big="default.jpg" /> <img src="default-thumb.jpg" data-big="default.jpg" /> <img src="default-thumb.jpg" data-big="default.jpg" /> PHP kôd:
PHP kôd:
Poslednja izmena od Nemanja Avramović : 01. 11. 2012. u 23:41. |
02. 11. 2012. | #2 | ||
banned
Professional
Datum učlanjenja: 04.06.2005
Poruke: 371
Hvala: 0
738 "Hvala" u 83 poruka
|
Umesto:
Kôd:
$(slika).data('big', slikaObj.big); Kôd:
$(slika).attr('data-big', slikaObj.big); Kôd:
parent.$(slika).data('big', slikaObj.big); Citat:
EDIT: Možeš i ovo: Citat:
Kôd:
slika.data('big', slikaObj.big);
__________________
Don't look at me; I'm lost too. “If you can't dazzle them with brilliance, baffle them with bul*s**t.” Poslednja izmena od Br@nkoR : 02. 11. 2012. u 00:41. |
||
"Hvala" Br@nkoR za poruku: |
02. 11. 2012. | #3 |
Ivan Dilber
Sir Write-a-Lot
|
glupa ideja, sta se desi ako umesto $(document).ready() stavis $(top.document).ready()?
btw, slika ti je vec jQuery objekat, ne moras svugde da pises $(slika)
__________________
Leadership is the art of getting people to want to do what you know must be done. |
02. 11. 2012. | #4 |
emperor Selassie
Grand Master
|
Hvala Branko, na kraju sam zaobišao postojeći jQuery objekat i radi ovako:
PHP kôd:
Što se tiče $(top.document).ready() - nisam probao (i ne moram sad kad radi) ali mislim da ne bi radilo jer je top.document ready opaljen kad se prethodna strana (koja otvara lightbox) učitala, odnosno pre nego što se lightbox kreira uopšte, ako se ne varam. |
02. 11. 2012. | #5 |
expert
Grand Master
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
|
|
4 članova zahvaljuje webarto za poruku: |
02. 11. 2012. | #6 |
banned
Professional
Datum učlanjenja: 04.06.2005
Poruke: 371
Hvala: 0
738 "Hvala" u 83 poruka
|
Možda da uradiš malo drugačije, da u replace.php po upload-u fajla odradiš:
Kôd:
parent.uploadFinishedCallback({uri: 'putanja/do/thumb-slike.jpg', big: 'putanja/do/slike.jpg'}); Kôd:
function uploadFinishedCallback(data) { $('.replace-this-image').attr('src', data.uri).data('big', data.big).removeClass('replace-this-image'); $.lightbox.close(); }
__________________
Don't look at me; I'm lost too. “If you can't dazzle them with brilliance, baffle them with bul*s**t.” |
02. 11. 2012. | #7 |
Ivan Dilber
Sir Write-a-Lot
|
zato ja jquery varijable nazivam sa $ na pocetku.. znaci $slika i odmah znas sta je
__________________
Leadership is the art of getting people to want to do what you know must be done. |
02. 11. 2012. | #8 |
emperor Selassie
Grand Master
|
^ pametno Mislim da u ovom ovde slučaju nije frka ni sa $(slika) pošto nemam na hiljade operacija koje treba izvršiti, već 4-5 linija koda. Ali svakako je dobra praksa ne koristiti uvek $(slika), pogotovo ako se radi sa nekim petljama
|
|
|