1 00:00:00,000 --> 00:00:00,380 2 00:00:00,380 --> 00:00:03,000 >> SPEAKER 1: Сега в този последен пример, Припомняме, че ние осеяни някои 3 00:00:03,000 --> 00:00:07,170 JavaScript код вътре в моя HTML, по-специално, в на стойността на 4 00:00:07,170 --> 00:00:10,460 атрибута призова Подайте за тази форма маркер. 5 00:00:10,460 --> 00:00:12,850 Сега за малки страници, този не е толкова голям проблем. 6 00:00:12,850 --> 00:00:15,950 Но като уеб страница става по-дълга и по- сложно, просто поставяте 7 00:00:15,950 --> 00:00:19,660 JavaScript код тук и там вътре на стойността на атрибути не е 8 00:00:19,660 --> 00:00:20,830 най-добър дизайн. 9 00:00:20,830 --> 00:00:23,440 Най-добър, ако ние фактор, който се и най-малко го постави вътре в 10 00:00:23,440 --> 00:00:25,200 етикет скрипт централно. 11 00:00:25,200 --> 00:00:26,080 >> Как да направите това? 12 00:00:26,080 --> 00:00:30,040 Ами нека да се върнем към моя форма и етикет първо да изтриете този атрибут и неговата 13 00:00:30,040 --> 00:00:31,780 ценим като цяло. 14 00:00:31,780 --> 00:00:35,730 След това тук, а не да определи функция, наречена Greet, нека да виси на 15 00:00:35,730 --> 00:00:39,405 на линията на код, който в крайна сметка ние все още ще искате да се изпълни и да се замени 16 00:00:39,405 --> 00:00:41,560 функцията Поздравете както следва. 17 00:00:41,560 --> 00:00:48,190 Document.get Element By ID цитирам цитата демо - 18 00:00:48,190 --> 00:00:52,410 когато демо, изземване, е уникалното идентификатор за себе си формата - 19 00:00:52,410 --> 00:00:56,600 точка на представи, който припомни, е името на манипулатора на събитие, в което 20 00:00:56,600 --> 00:00:57,710 ние сме заинтересовани. 21 00:00:57,710 --> 00:01:01,990 И нека да присвоите на представи манипулатор стойността, която всъщност е 22 00:01:01,990 --> 00:01:03,740 самата функция. 23 00:01:03,740 --> 00:01:06,390 >> Сега забелязвам, че аз не съм в действителност Извикването на функциите тук. 24 00:01:06,390 --> 00:01:10,650 Аз вместо определяне анонимен, иначе известни като функция ламбда, 25 00:01:10,650 --> 00:01:14,100 като се уточни между тези фигурни скоби един куп код, който трябва да 26 00:01:14,100 --> 00:01:15,490 действително да бъде изпълнена. 27 00:01:15,490 --> 00:01:18,500 Конкретно, кодът, който бих искал за изпълнение е, че линията, която имах 28 00:01:18,500 --> 00:01:23,370 и преди, и след това нека прибавим към това връщане фалшиви, така че тази форма не е 29 00:01:23,370 --> 00:01:26,950 в крайна сметка представен до края отдалечен уеб сървър по традиционния начин. 30 00:01:26,950 --> 00:01:30,345 >> Нека сега запишете този файл, да го отворите в браузъра, и да видим какво ще стане. 31 00:01:30,345 --> 00:01:33,050 32 00:01:33,050 --> 00:01:39,800 http://localhost/dom-1.html. 33 00:01:39,800 --> 00:01:43,060 Нека сега въведете в Мое име, David, Изпращане. 34 00:01:43,060 --> 00:01:46,900 И нищо не се появява, за да се случи с изключение на URL адреса на страницата ми изглежда 35 00:01:46,900 --> 00:01:52,580 са се променили, като че формата е всъщност представен на един и същи файл. 36 00:01:52,580 --> 00:01:53,870 >> Сега защо това може да е? 37 00:01:53,870 --> 00:01:55,340 Ами имам нужда от малко повече информация. 38 00:01:55,340 --> 00:01:58,700 Така че нека да вървим напред и да се отворят на Chrome Инструменти за разработчици, така че всъщност мога да 39 00:01:58,700 --> 00:02:01,440 погледнете прозореца на конзолата, за да видите ако съм направил нещо нередно. 40 00:02:01,440 --> 00:02:03,330 I може да има достъп, че чрез няколко начина. 41 00:02:03,330 --> 00:02:07,250 Един от които е чрез това меню тук, след това в Инструменти, а след това надолу, за да 42 00:02:07,250 --> 00:02:08,509 Инструменти за разработчици. 43 00:02:08,509 --> 00:02:12,890 >> И забележи тук, в раздела Console, има незабелязана грешка тип, не може да 44 00:02:12,890 --> 00:02:15,390 определен имот на представи на нула. 45 00:02:15,390 --> 00:02:16,900 Сега защо това може да е? 46 00:02:16,900 --> 00:02:21,380 Ами обратно в моя изходния код тук, известие че при изпращане мисля, че е по- 47 00:02:21,380 --> 00:02:25,360 собственост на елемент, чието уникален идентификатор е демо. 48 00:02:25,360 --> 00:02:27,810 Един елемент, отново, е само възел в дърво. 49 00:02:27,810 --> 00:02:30,870 >> Така се оказва, че навигаторът ми не прави Мисля, че този елемент 50 00:02:30,870 --> 00:02:32,500 или възел съществува все още. 51 00:02:32,500 --> 00:02:33,790 И наистина, това не е така. 52 00:02:33,790 --> 00:02:37,690 Спомнете си, че една уеб страница се прави разбор или да прочетете чрез уеб браузър, отгоре надолу, 53 00:02:37,690 --> 00:02:38,430 от ляво на дясно. 54 00:02:38,430 --> 00:02:41,810 И така, когато JavaScript код е срещат, обикновено, това е екзекутиран 55 00:02:41,810 --> 00:02:42,700 веднага. 56 00:02:42,700 --> 00:02:46,460 >> Но в този случай, ние дори не сме придобили Все още към частта на DOM, на 57 00:02:46,460 --> 00:02:51,100 HTML, в които тази форма с уникален идентификатор демо е била обявена. 58 00:02:51,100 --> 00:02:54,320 И така, ние се опитваме да изпълни моята JavaScript код, преди този възел дори 59 00:02:54,320 --> 00:02:58,530 съществува в дървото, което, разбира се, е проблематично, защото тогава, със сигурност, 60 00:02:58,530 --> 00:03:01,390 самия елемент ще бъде нула в този момент във времето. 61 00:03:01,390 --> 00:03:02,390 >> Е, как да се определи? 62 00:03:02,390 --> 00:03:03,810 Ами ние имаме няколко решения. 63 00:03:03,810 --> 00:03:07,200 Но нека да се опитаме най-простите чрез преместване ми скрипт таг от главата 64 00:03:07,200 --> 00:03:11,560 маркер към тялото ми, но конкретно към долната част на тялото ми страница, така 65 00:03:11,560 --> 00:03:14,170 че е под възли и въпроси. 66 00:03:14,170 --> 00:03:19,930 По-конкретно, да се подчертае и нарязани отворения етикет и затварящия етикет за скрипт 67 00:03:19,930 --> 00:03:24,720 и се премести, че целият блок от код на края на файла тук. 68 00:03:24,720 --> 00:03:27,690 >> Сега това не е непременно най-чистите дизайн, но поне ще 69 00:03:27,690 --> 00:03:29,530 прилагане на правилния ред на операциите. 70 00:03:29,530 --> 00:03:31,495 Нека да запишете файла и заредете в браузъра си. 71 00:03:31,495 --> 00:03:34,620 72 00:03:34,620 --> 00:03:40,240 Нека да презаредите страницата, повторно въвеждане на името ми, и там, Hello David се завръща. 73 00:03:40,240 --> 00:03:42,784