ΟΜΙΛΗΤΗΣ 1: Τώρα, σε αυτό το τελευταίο παράδειγμα, Υπενθυμίζω ότι έχουμε κάποιες διάσπαρτες JavaScript κώδικα HTML μέσα μου, Συγκεκριμένα, στο εσωτερικό της αξίας το χαρακτηριστικό που ονομάζεται On Υποβολή για αυτή την ετικέτα μορφή. Τώρα για τις μικρές σελίδες, αυτό Δεν είναι μια τέτοια μεγάλη υπόθεση. Αλλά, όπως μια ιστοσελίδα παίρνει πλέον και περισσότερο πολύπλοκο, απλά βάζοντας σας JavaScript κώδικα εδώ και εκεί μέσα της αξίας των ιδιοτήτων δεν είναι η καλύτερο σχεδιασμό. Καλύτερα αν το βάλουμε έξω και τουλάχιστον το βάλετε μέσα από η ετικέτα script κεντρικά. Πώς να το κάνουμε αυτό; Λοιπόν ας επιστρέψουμε στη φόρμα tag μου και πρώτα να διαγράψετε αυτό το χαρακτηριστικό και της αξία συνολικά. Στη συνέχεια, εδώ, παρά για να ορίσετε μια λειτουργία που ονομάζεται Greet, ας κρεμάσει στη γραμμή του κώδικα που, τελικά, θα θα εξακολουθούν να θέλουν να εκτελέσει και να αντικαταστήσετε η λειτουργία Greet ως εξής. Document.get στοιχείο με id παραθέσω unquote demo - όπου demo, ανάκληση, είναι ο μοναδικός αναγνωριστικό για την ίδια μορφή - dot για να υποβάλει, η οποία να ανακαλέσετε το όνομα του χειρισμού συμβάντων στο οποίο μας ενδιαφέρει. Και ας ορίσετε ότι για να υποβάλουν χειρισμού η τιμή που είναι στην πραγματικότητα ένα λειτουργούν το ίδιο. Τώρα παρατηρήσετε ότι δεν είμαι πραγματικά καλώντας μια συνάρτηση εδώ. Είμαι αντί να ορίζει ένα ανώνυμο, αλλιώς γνωστή ως μια συνάρτηση λάμδα, καθορίζοντας μεταξύ αυτών άγκιστρα ένα μάτσο κώδικα που θα πρέπει να στην πραγματικότητα να εκτελεστεί. Συγκεκριμένα, ο κώδικας που θα ήθελα να εκτελέσει είναι ότι η γραμμή που είχα πριν, και τότε ας προσθέσει ότι return false, έτσι ώστε αυτή η μορφή δεν είναι υπέβαλε τελικά να τελειώσει απομακρυσμένο web διακομιστή με τον παραδοσιακό τρόπο. Ας τώρα να αποθηκεύσετε αυτό το αρχείο, να το ανοίξουμε σε ένα πρόγραμμα περιήγησης, και να δούμε τι θα συμβεί. http://localhost/dom-1.html. Ας τώρα να πληκτρολογήσουν το όνομά μου, David, Υποβολή. Και τίποτα δεν φαίνεται να συνέβη εκτός από το URL της σελίδας μου φαίνεται να έχουν αλλάξει, όπως κι αν η μορφή ήταν πράγματι υποβλήθηκε στο ίδιο αρχείο. Τώρα γιατί θα μπορούσε να είναι; Καλά Χρειάζομαι περισσότερες πληροφορίες. Ας πάμε μπροστά και να ανοίξει του Chrome Εργαλεία για προγραμματιστές έτσι ώστε να μπορώ πραγματικά δείτε το παράθυρο της κονσόλας για να δείτε αν έχω κάνει κάτι λάθος. Μπορώ να έχω πρόσβαση μέσω του ότι μια-δυο τρόπους. Ένα των οποίων είναι μέσω αυτού του μενού εδώ, Στη συνέχεια, στην περιοχή Εργαλεία, στη συνέχεια, σε Εργαλεία για προγραμματιστές. Και εδώ παρατηρούμε στην καρτέλα Console, υπάρχει ένας ασύλληπτος σφάλμα τύπου, δεν μπορεί να ορίσετε την ιδιότητα για να υποβάλουν από μηδενική. Τώρα γιατί θα μπορούσε να είναι; Λοιπόν, πίσω στο πηγαίο κώδικα μου εδώ, ανακοίνωση ότι για την υποβολή των πιστεύω ότι είναι μια ιδιότητα του στοιχείου του οποίου η μοναδικό αναγνωριστικό είναι demo. Ένα στοιχείο, και πάλι, είναι ακριβώς ένας κόμβος σε ένα δέντρο. Έτσι φαίνεται ότι ο φυλλομετρητής μου δεν Πιστεύω ότι αυτό το στοιχείο ή κόμβος υπάρχει ακόμα. Και πράγματι, αυτό δεν γίνεται. Θυμηθείτε ότι μια ιστοσελίδα αναλύεται ή να διαβάσετε από ένα πρόγραμμα περιήγησης στο web, πάνω προς τα κάτω, αριστερά προς τα δεξιά. Και έτσι όταν ο κώδικας JavaScript είναι που αντιμετωπίζουν, συνήθως, είναι εκτελεστεί αμέσως. Αλλά στην περίπτωση αυτή, δεν έχουμε πάρει ακόμη ακόμη το τμήμα της Dom, η HTML, στις οποίες η μορφή με ένα μοναδικό αναγνωριστικό demo έχει δηλωθεί. Και έτσι προσπαθούμε να εκτελέσει μου JavaScript κώδικα, πριν από αυτόν τον κόμβο ακόμη υπάρχει στο δέντρο οποία, φυσικά, είναι προβληματική, διότι τότε, σίγουρα, το ίδιο το στοιχείο θα είναι null εκείνη τη χρονική στιγμή. Λοιπόν, πώς να διορθώσετε; Λοιπόν έχουμε μια-δυο λύσεις. Αλλά ας προσπαθήσουμε το πιο απλό με την μετεγκατάσταση script tag μου από το κεφάλι ετικέτα στο σώμα μου, αλλά, συγκεκριμένα, προς το κάτω μέρος του σώματος της σελίδας μου τόσο ότι είναι κάτω από τους κόμβους και ερωτήσεις. Συγκεκριμένα, ας επισημάνω και να μειώσει η ανοικτή ετικέτα και ετικέτα κλεισίματος για το σενάριο και να το μεταφέρει όλο αυτό το μπλοκ του κώδικα στο κάτω μέρος του αρχείου εδώ. Τώρα αυτό δεν είναι απαραιτήτως η καθαρότερη σχεδιασμό, αλλά τουλάχιστον θα επιβάλλουν την σωστή σειρά των ενεργειών. Ας αποθηκεύσετε το αρχείο και reload στον browser μου. Ας επαναλάβετε τη φόρτωση της σελίδας, η εκ νέου εισαγωγή του ονόματος μου, και εκεί, Hello David είναι πίσω.