QSpec Δημοσ. 9 Ιουλίου 2008 Δημοσ. 9 Ιουλίου 2008 Καλησπέρα, έχω αυτό εδώ το scriptάκι το οποίο εμφανίζει κάτι divs. >function expandImage() { var i=0; for (i=1;i<=3;i++) { var the_Image = getStyleObject("Image" + i); if (the_Image) { var current_top = parseInt(the_Image.top); var new_top = current_top - 1; var current_height = parseInt(the_Image.height); var new_height = current_height + 2; if (document.layers) { the_Image.top = new_top; the_Image.height = new_height; } else { the_Image.top = new_top + "px"; the_Image.height = new_height + "px"; } if (new_height < 162) { the_timeout = setTimeout('expandImage();',10); } } } } Το πρόβλημα μου είναι ότι ενώ θα έπρεπε να εμφανίζει (κουνάει ουσιαστικά) 1 div σε κάθε επανάληψη, κουνάει και τα 3 (ή 2 ή 5 ή 10 κτλ.) με αποτέλεσμα να τριπλασιάζονται (ή χ2 ή χ5 ήχ10 κτλ.) τα πάντα!Και η ταχύτητα ("var new_top = current_top - 1;" και "var new_height = current_height + 2;") και το height που ορίζω για φρένο ("if (new_height < 162)"). Με λίγα λόγια ήλπιζα ότι θα άλλαζε το top κατά -1 και το height κατα -2 στα divs με id Image1, Image2, Image3 κτλ. αλλά το κάνει 3 φορές για το καθένα! Ειμαι σίγουρος πως θα είναι καμιά βλακεία στην επανάληψη αλλά το παλεύω εδώ και ώρα και δεν κάνω τίποτα, ίσως ενα φρέσκο ζευγάρι μάτια βοηθήσει.
death2all Δημοσ. 9 Ιουλίου 2008 Δημοσ. 9 Ιουλίου 2008 Το πρόβλημα σου είναι στην γραμμή: > the_timeout = setTimeout('expandImage();',10); Στο σημείο που βρίσκεται, για κάθε μία εικόνα (3 φορές δλδ) στο οποίο το ύψος είναι λιγότερο από 162, τρέχει πάλι την expandimage μετά από 10sec. Μάλλον πρέπει να μετακινηθεί κάπου εκτός του loop.
QSpec Δημοσ. 9 Ιουλίου 2008 Μέλος Δημοσ. 9 Ιουλίου 2008 Αυτό ήταν πράγματι το πρόβλημα. Παρόλο που έιχα μεταφέρει το } πανω από αυτήν την γραμμή, έπρεπε να μεταφέρο και το } της if. Thanks!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.