>> Выступоўца 1: Цяпер у апошнім прыкладзе, Нагадаем, што мы перамяжоўваюцца некаторыя
JavaScript код ўнутры майго HTML, У прыватнасці, унутраная частка кошту
атрыбут заклікаў Адаслаць для гэтага тэга формы.
Зараз для невялікіх старонак, гэта не такое ўжо вялікая справа.
Але, як вэб-старонка атрымлівае больш і больш комплекс, проста пакласці вашы
JavaScript код тут і там унутры ад кошту атрыбутаў ня
лепшы дызайн.
Лепш за ўсё, калі мы фактарам, што, і прынамсі паставіць яго ўнутры
тэг сцэнара цэнтралізавана.
>> Як гэта зрабіць?
Ну давайце вернемся да маёй тэга формы і спачатку выдаліць гэты атрыбут і яго
шануеце ў цэлым.
Тады тут, а не вызначыць Функцыя называецца Вітайце, давайце трымацца
у радку кода, што, у канчатковым рахунку мы будзе па-ранейшаму жадаеце выканаць і замяніць
функцыя наступным чынам Вітайце.
Document.get Элемент Па ID цытую Unquote дэма -
дзе дэма, нагадаем, з'яўляецца адзіным Ідэнтыфікатар для самой форме -
кропка на ўявіць, што ўспомніць гэтае імя апрацоўшчыка падзей, у якіх
мы зацікаўленыя.
І давайце прызначым, што на прадставіць апрацоўшчык значэнне, якое на самай справе
функцыянаваць сябе.
>> Зараз звернеце ўвагу, што я на самой справе не выкліку функцыі тут.
Я замест вызначэння ананімны, інакш вядомы як функцыю лямбда,
, Паказаўшы паміж гэтымі фігурныя дужкі куча кода, які павінен
на самай справе выкананы.
У прыватнасці, код, які я хацеў бы выканаць тое, што лінія, якая ў мяне была
раней, а затым давайце дадамо да таго, што вярнуцца ілжывым, так што гэтая форма не
у канчатковым рахунку, прадстаўлены ў канец аддаленага вэб сервер традыцыйным спосабам.
>> Давайце зараз захаваць гэты файл, адкрыць яго ў браўзэры, і паглядзець, што адбываецца.
http://localhost/dom-1.html.
Давайце зараз ўвесці сваё імя, Дэвід, Адправіць.
І нічога не з'яўляецца, адбылося акрамя Адрас маёй старонцы здаецца
змяніліся, як быццам форма была фактычна прадстаўлены той жа файл.
>> Цяпер, чаму гэта можа быць?
Ну мне трэба больш інфармацыі.
Так што давайце ісці наперад і адкрыць у Chrome Прылады распрацоўкі, так што я магу на самой справе
паглядзець на акне кансолі, каб убачыць калі я зрабіў нешта не так.
Я магу атрымаць доступ, што праз некалькі спосабаў.
Адным з іх з'яўляецца дапамогай гэтага меню тут, Затым у меню Сэрвіс, затым ўніз да
Прылады распрацоўкі.
>> І звярніце ўвагу, тут на ўкладцы Console, ёсць неперехваченное Памылка тыпу, не можа
ўсталяваць ўласнасць на ўявіць, роўным нулю.
Цяпер, чаму гэта можа быць?
Ну яшчэ ў маім зыходным кодзе тут, апавяшчэнне што на адправіць, я думаю,
ўласцівасць элемента, унікальны ідэнтыфікатар з'яўляецца дэма.
Элемент, зноў жа, гэта проста вузел у дрэве.
>> Атрымліваецца, што мой браўзэр не думаю, што гэты элемент
або вузел існуе яшчэ.
І на самай справе, гэта не так.
Нагадаем, што вэб-старонка аналізуецца ці чытаць вэб-браўзэрам, зверху ўніз,
злева направа.
І таму, калі JavaScript код сутыкнуліся, як правіла, ён выконваецца
адразу ж.
>> Але ў дадзеным выпадку, мы нават не атрымалі яшчэ ў той частцы DOM,
HTML, у якім, што форма з унікальным Ідэнтыфікатар дэма быў абвешчаны.
І такім чынам мы спрабуем выканаць мой JavaScript код да гэтага вузла нават
існуе ў дрэва, якое, вядома, з'яўляецца праблематычна, таму што тады, безумоўна,
сам элемент будзе нулявым на той момант.
>> Так, як выправіць?
Ну ў нас ёсць некалькі рашэнняў.
Але давайце паспрабуем найпростых шляхам перамяшчэння мой тэг скрыпт з галавы
пазначыць да майго цела, але канкрэтна, да дно цела маёй старонкі так
што гэта ніжэй вузлоў і пытанні.
У прыватнасці, давайце вылучыць і выразаць адкрыты тэг і што зачыняе тэг для сцэнара
і становішча, што ўвесь блок кода у ніжняй часткі файла тут.
>> Зараз гэта не абавязкова самы чысты дызайн, але па меншай меры гэта будзе
захаванне правільнага парадку аперацый.
Давайце захавайце файл і перазагрузіць ў маім браўзэры.
Давайце перазагрузіце старонку, паўторна ўваход маё імя, і там, Прывітанне Дэвід вярнуўся.