Κλήση nested Javascript function

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 22 Οκτ 2008 21:20

Ξέρει κανείς πώς καλούμε μια ενθετη Js function από κάποιο σημείο της σελίδας; (πχ στο event κάποιου button)

ΠΧ
Αν έχουμε μια function του τύπου

Κώδικας: Επιλογή όλων

function a(){
statements...
...
function b(){
...
} // end of function b
} // end of function a
πώς καλούμε την function b?

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από cherouvim » 22 Οκτ 2008 23:05

Τι ακριβώς θες να κάνεις;

Αν θες μπορείς να κρύψεις functions μέσα σε ένα object:

Κώδικας: Επιλογή όλων

var a = {
    b: function() {
        alert('b');
    },
    c: function() {
        alert('c');
    }
}
και να τα καλέσεις έτσι:

Κώδικας: Επιλογή όλων

a.b();

a.c();

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 23 Οκτ 2008 07:01

Μακάρι να ήθελα να κάνω (οπότε έχω τον έλεγχο και ξέρω πως και τι θα κάνω).
Σωστά το ανανφέρεις με object...

Το θέμα είναι πως χρησιμοποιώ έναν ColorPicker που βρήκα και κατέβασα, ο οποίος κάπου έχει την δομή που ανέφερα. Θέλω εξωτερικά να καλέσω μια function την οποία ο τύπος έχει βάλει μέσα σε μία άλλη function στο script του...

Για την ακρίβεια είναι η function που εκτελείται στο onChange event του textfield με τον hex color code του ColorPicker.
Το πρόβλημα αρχίζει από τη στιγμή που εγώ αλλάζω την τιμή αυτή (hex code) προγραμματιστικά και δεν πυροδοτείται το event "change".
Δυστυχώς δεν βρήκα κανέναν λειτουργικό τρόπο για custom fire event (under mootools framework) οπότε το μόνο που μου μένει είναι να βρώ τρόπο να καλέσω την function απ' ευθείας...

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 23 Οκτ 2008 09:14

Η απάντηση τελικά βρέθηκε στο http://free.netartmedia.net/JavaScript/JavaScript1.html και δυστυχώς δεν μου λύνει το πρόβλημα.
Δεν μπορεί να κληθεί εξωτερικά μια τέτοια function επειδή θεωρείται private function που την βλέπει μόνο η μητρική της function.
Δηλαδή ...ΦΤΟΥ! :evil:

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από cherouvim » 23 Οκτ 2008 10:24

Θα πω μεγάλη κουβέντα και θα σου προτείνω τυφλά να βάλεις jQuery και κάποιο colourpicker plugin.

Ορίστε, το είπα ;)

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 23 Οκτ 2008 13:15

Τελικά ακολούθησα την επίπονη λύση να μετατρέψω τις private functions σε public (ευτυχώς καμμιά δεκαριά μεταβλητές χρειάστηκε να ορίσω ξανά ως global) και όλα δουλεύουν ρολόι!

Επί της ουσίας αναβαθμίζω το css builder του framework μας και επ' ευκαιρία έκατσα και το έκανα όπως ακριβώς θα με βόλευε.
Ανέβασα ένα μικρό μέρος της εφαρμογής (χωρις δυνατότητα save) στο www.webpage.gr/test/config_css.php
Οποιοδήποτε feedback θα μου ήταν χρήσιμο...

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από cherouvim » 23 Οκτ 2008 14:08

Ωραίος!

Το http://www.webpage.gr/test/images/textfield_bg.gif μαζί με το css border τον inputs θα το χαλάρωνα λίγο. Έχει μεγάλη αντίθεση.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 26 Οκτ 2008 10:07

Σωστός!
Ακολούθησα την συμβουλή σου και πράγματι βελτιώθηκε το αποτέλεσμα αισθητικά.
Έκανα και κάποιες ακόμα βελτιώσεις και είμαι στην τελική φάση του component.
Online για demo κράτησα μόνο την δυνατότητα menu styling (χωρίς save αλλά με export --> css code).

Σε ευχαριστώ :wink:

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Κλήση nested Javascript function

Δημοσίευση από dimsis » 26 Οκτ 2008 12:34

... δεν μπόρεσα να το δω, επειδή δεν παίζει σε ΙΕ... και μάλιστα μου λέει και get a life.. αγενέστατο σύστημα! :p
Συνημμένα
oriste.JPG
oriste.JPG (10.74 KiB) Προβλήθηκε 1480 φορές

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 26 Οκτ 2008 17:20

Ωχ δεν θα μπορούσα να φανταστώ πως ένα τέτοιο μήνυμα θα μπορούσε να έχει αποδέκτη κάποιον σαν εσένα Δημήτρη (Χρόνια πολλά by the way!!!) :lol:

Επειδή το συγκεκριμένο component προορίζεται για indoor χρήση (backend του framework) φρόντισα να το κτίσω πάνω στον κατά κοινή παραδοχή κορυφαίο browser, τον firefox. Οταν ήρθε η ώρα της συμβατότητας, παρατήρησα πως μόνο ο ΙΕ τα είδε ανάποδα (τα ραδίκια).
Firefox, Chrome, Safari = Τέλεια!
Opera = Πολύ καλά (μόνο ένα προβληματάκι στο drag των sliders παρουσίασε)

Οπότε οκ don't get a life, αλλά έναν σοβαρό browser τον χρειάζεσαι :D

ΥΓ.
Ο Chrome το πάει ελαφρώς καλύτερα και από firefox!!! Με κερδίζει κάθε μέρα πιο πολύ!

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από cherouvim » 26 Οκτ 2008 17:29

Και εδώ θα σε βοηθούσε το jQuery. Δεν θα ασχολιόσουν με τους browsers. Ο client side κώδικας θα έπαιζε παντού.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Κλήση nested Javascript function

Δημοσίευση από korgr » 26 Οκτ 2008 18:05

cherouvim έγραψε:Και εδώ θα σε βοηθούσε το jQuery. Δεν θα ασχολιόσουν με τους browsers. Ο client side κώδικας θα έπαιζε παντού.
Στην επόμενη αναβάθμιση, θα είναι μονόδρομος :D
Προς το παρών δεν με ενοχλεί αφού μόνο εμείς εδώ στο γραφείο με firefox θα το δουλεύουμε...

Έχω αρχίσει να διαβάζω JQuery πάντως...

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες