00:00
行,那咱们就接着上午的内容往下看,上午咱们是在最后说的是一个这个事件的注册是吧?哎,事件的注册,那事件注册这块的话,咱们这个统一的一种写法,大家要记住啊,就是用window.onload然后后面呢,有一个回调函数是吧,这个回调函数执行过程当中呢,我们可以获取元素,然后给这个元素绑定。实践是不是绑定实践?这个代码呢,大家尽可能去理解它的含义啊。当然也有可能有有一部分同学吧,可能就是这个可能很难去理解,那如果说是你要你要遇到这种情况的话,怎么办呢?你就记结构。省得就是说一会儿是页面加载过程当中咋了,一会儿又页面加载完毕之后又咋了是吧,一会儿又这样那样的,我觉得这个要是如果实在是说这块大家要是理解不了那。
01:01
我觉得你可以记一下结构,这个结构就是window onload后边有个函数,然后接下来在这个里边再继续啊。是吧,再继续啊啊。好了,那这个呢,咱们是。最后这个例子啊,咱们也可以再运行一下。它这个运行呢,运行之后呢,咱们要做的就是点这个按钮之后呢,这个变成复选框啊变了是吧,它是怎么做的,就是我们。相当于说是把这个元素它的T,这个T给它改成了t box。是吧,改成。好了,那咱们就接着再往下吧,啊,再往下再往下,就是说我们通过key down事件演示回车,回车键13。
02:00
就说这个是什么呢?就是说有的时候在一些应用当中,比如说我们今天上午在最后说的这个百度啊,咱们随便打开一个页面,这地方我登录。那我们需要输入这个用户名和密码,然后登录对吧,那登录有的时候用户他点这个登录按钮,有的时候他不点,有的时候敲回车。比如敲回车,所以说我们怎么去捕捉一下那个回车键,你不能说用户输进去用户屏密码,只要一按键盘任意键就就就登录,那肯定不是这样的,一般情况下就是按按回车键才才会登录,对不对,所以说我们来尝试捕捉一下回车键的键值啊。从这呢,我们新建一个平方,然后019我们写上去叫做JS代码捕捉。这个回车键。捎带着我们说一下这个ESC键啊。来,那这块呢,咱们就。在这写上啊,咱们回车键加。
03:06
呃,怎么捕捉呢,在这个into的光text,然后。我们在这个文本框上捕捉一下回车键行吧,因为毕竟一般都是用户在这个文本框里面,用户名密码输进去,输到这之后光标不离开。对吧,敲回车是这意思吧,所以一般都是。这个文本框或者说密码框上。给他绑定什么呀,叫做on什么。对不对,On key down不就是键盘摁下的事件嘛,对不对,哎,我们可以给个ID啊,给个ID,这个ID呢,就是user name吧,随边给啊好,那开始写代码了,这这边怎么写啊,Window点什么啊,漏是不是按方式页变加载完毕之后呢,执行这个回调函数。
04:03
这个回头函数在这里呢,我们先把这个文本框拿到呗,这个文本框拿到啊,do.get element by ID就是它拿到了这个元素,或者叫username element。对吧,叫用户名的一个元素。用户名元素点on什么on key down是不是?是吧,那么接下来呢,我们就在这儿呢,把这个。运行一下,我随便随便敲啊,这会随便敲,只要是按一下,按一下那个键盘上的键,是不是就触发这个开档事件呀来。对吧。F。哎,你看。
05:01
B。是。对吧,这块只要是一摁,只要是说这个一你看。我按CTRL键你看。是吧,按CTRL键啊,本来我想把这个页面给它。让他稍微大点。啊。摁ESC呢,它也一样对吧,就是键盘上任何一个键啊减号你看。他都触发这个叫什么叫。Key事件。对不对,现在我们的任务是干什么呢?当执行这个回调函数的时候,我们要在这干什么?获取键值。对,获取键值。他按的是哪个键,我们就获取到这个键的一个值,键盘上的这个这些键啊,每一个键它都有都有值的。
06:05
哎,所以说你你得这个兼职你得记呀。回车就回车键就是13。对,这是咱别的不用记啊,就这两个我们用的比较多一些啊,回车键的键值是。13ESC键的键值是27。记住这两个啊,那怎么去获取这个键值呢?诶注意。他这个回调函数这块。有一个参数,各位这个参数啊。叫event。对。
07:01
这个疑问的是什么呢?就代表这个刚刚发生的事件。这块可能听不太懂是吧,这个名字随意的,你愿意写什么写什么,它就是一个什么局部变亮。明白吗?这个局部变量你往这一写,A啊B啊C啊D的往这一写就行了,写到这之后呢,这个变量自然将来会接收一个东西。会接收一个什么呢。实践对象。你们思考一下,它是怎么传过来的?They'are on click。后边也有一个什么,放个谁,这是个回调函数吧,这个回调函数,这个回调函数假如说就是c hello,啊。
08:12
然后呢,这个say hello当中的这个位置,可以随意的编写一个什么。变量名随意。这个变量将来接受的是一个事件对象。因为你知道这个函数的调用者是谁调啊,你只是负责去写,对吗?你别忘了是别人浏览器,等这个鼠标单击事件发生之后,他才会去执行这个c hello吧。那C号是你调的吗?不是啊,是浏览器负责调用,那我们浏览器既然负责去调用我们的这个方法,那浏览器就有机会给我们传过来一个东西,对吧。
09:08
这个能理解吗?就这个好,不是这。不是这次啊。什么意思,我们之前写的时候,这个回调函数是不是这个位置啥也没写,没写他传不传也传。床上只不过没有东没有没有胳膊附上去。就是我们之前写的这个回调函数,实际上这个什么叫回调函数,我说了很多次了,这个函数您只要把它写出来就行。别人去调。别人去调你这个函数,就可以给你这个函数传很多很多参数嘛。如果你这个括号里边谁也什么也没写,他传不传还是传?
10:03
只不过没附上。就相当于我问大家一个问题,你这有个c hello函数,我去调你的c hello函数,我可以这么去调,我问大家我是不是也可以c hello后面直接跟个一,我可以say hello后面跟个一二逗号三行不行。我这个函数还有这个,还有这个,我这三个调的是不是都是这一个函数。那我问你,如果你这样写个A的话,你将来是不是接触到这个一,你要写一个A逗号B的话,你是相当于这个二,这个A现在就是几2B就是谁啊三呗。是啊。就我想表达的一个意思呢,这块呢,确实也是很难为大家,这块呢不太好理解,那不太好理解的原因是因为这个函数调用者不是你去调用,你是只是负责把这个函数写一下。
11:00
就user name这个元素拿到之后呢,给这个元素注册一个这个键盘按下事件,我问你键盘按下事件是不是等于发生了一个事啊,这个事件对象浏览器将来调这个回调函数的时候,它自动会把那个事件对象作为参数给我们传过来,如果我们在这个地方写个变量的话,这个变量将来就是正好能够接收到谁,那个事件对象你要不写。它那个事件对象该传还是给你传过来,只不过你在这拿不到,就是你在这个位置上就拿不到那个事件对象。好,所以呢,这个变量名是不是随意。这个E代表什么,现在。发生那个事件之后,浏览器会负责调我们这个函数,它自动会给我们传过来一个事件对象,附到我们这个变量上,我们变量意义现在就代表的是当前事件对象,当然您这个变量名随便写。
12:09
是吧?郑中磊,理解了吗?什么情况?的世界是是他的。传送过来,这个事件是当前发生的key down事件。他跟这个大括号没有关系。大框直径的回调函数。
13:06
On down也不是个事件啊,这是个事件句柄。这个事件句柄后面有一个回调函数,那同学们告诉我这个回调函数什么时候执行?可当事件发生之后,这个回调函数执行吗?那函数执行是我们去调还是浏览器去调,浏览器去调,那浏览器能不能随便给我传东西,传过来的东东西过来行不行。可以吧?那我们就是我们就是接不接的意思呗,如果括号里边啥也不写,那相相当于说他传过来我们不理他呗,如果说我写了一个变量的话,它是不是就恰好就扔到这个变量上了。就好比说啊,咱们咱们这样吧,咱们咱不看这个了啊,不看这个,不看这个各位不看这个了啊,咱们抛开这个,咱们讲讲别的行不行,什么事件这个那个不管不管啊不管我们假设啊张三程序员写的这样一个函数啊,这个函数呢,就叫sum。
14:19
在地球上啊。然后接下来呢,干什么呢?李四这个程序呢,去调用什么sum函数。是吧,那这个我问大家,李四成员调这个萨姆函数的时候,它可以这样去调。没问题吧,诶咱看看啊,Sum执行了是不是,诶这这这这这个这个是不是页面一打开就执行了,那some执行了。对吧,那我反过来李四,如果人家就不这么调。
15:03
李斯调的时候往里边传了一个字符串,哈,他走不走这个函数。走吧,来点点点啊。刷新一下。对吧,它这个函数调的时候是不是就相当于传那个参数,但只不过这个函数上面是不是没有接收。但这个函数会不会执行?当然有一天您心情好了,您照样也可以把这个函数怎么着,再写一个变量在这接收一下行不行?我以前没接收,我现在咋了?我现在想接收了,我想接收能接收吗?那我这个A是谁?
16:00
刷新一下。理解不?就是在JS当中,它很奇妙的一个东西,就是说这个函数这个东西太随意了。它不像Java中那么固定,说几个参数就必须得是几个参数是吧。就程序员他写了这样一个函数,我在调的时候,我可以不传参,我也可以传参。我传了参之后呢,反过来看,我传了参数之后呢,我的函数也可以这样写对吧。当然有一天我也可以加一个参数。那加了这个A是不是就相当于接收的这个值,那现在一样啊,那我之前讲的这些回调函数我写东西了吗?这写没写我前面讲的这些东西,是不是回到函数后边,这都没有接东西,我这个是这个是不是都没有去接呀,我现在我想起来我想接能不能接呢?我这会我再告诉你,这个地方实际上是可以写一个变量的啊,这个变量正好接收的是当前刚刚发生的那个事件,那个事件是人家浏览器给我们传过来的。
17:14
那有同学问我老师那个事件,那个事件对象是谁new的呀?那当然是浏览器,我没有妞啊。我们大家在这个窗口上,我们现在在这儿直接敲一下,一个键键敲下去,我问你就等于什么事件发生了,键盘按下事件是不是发生了,好我问你这个浏这会浏览器能不能把这个事件这个弄成一个对象。只不过浏览器把这个事件对象就出来了,他把这个事件对象的内存地址扔给了谁?扔给了我们这个回调函数,我们的回调函数当中可以写一个变量去接收这个事件对象。
18:01
那如果说我摁第一次的时候,这个A是不是对应这个对应一个事件,我第二次我再摁,我问大家是不是又发生了全新的一次事件,这个事件会不会在浏览器里边再弄一个新的事件对象,会,这个事件对象同样会给我们传过程。就这样一个意思。这个你好好再再再再想想啊,这个好好再想想,来我这块呢,来说先注释掉,就说这块我想向大家传达的是说在JS当中啊,它这个这个回调函数这个东西啊,它括号里面是有很多参数。他第一个参数接收可以接收什么,可以接收当前发生的这个事件,我们可以把这个A怎么着弹出来,我们看看这个A它弹出来是个什么样的行吧。来啊,我们刷新一下回车啊。
19:00
叫object keyboard event。这个A现在代表的是什么?就代表的是一个键盘事件吗。那雨桐老师你有没有给我们少讲参数,有没有别的参数?还有没有别的参数?啊,我们可以测试一下是吧,他如果写两个变量的话,它这个回调函数,在将来这个浏览器调这个回调函数的时候,他会他会不会给我们传两个参数进来。我们看一下B就知道了,来我刷新一下啊,之后呢,我敲一下回车。安迪芳。对吧,那么接下来我们如果不放心,你可以再往后再接着加。是不是来接一下,你加三个参数,你第三个参数。
20:04
我们来看一下走。安底,那通过这个呢测试,你可以很清楚的看到啊,它实际上这个回调函数当中是有一个最多写几个,写一个变量,这一个变量接收的是什么,就是那个事件。跟键盘没关系啊。Click就不是事件了吗?On click是鼠标单击,鼠标单击的时候是不是同样也有一个参数,它会把这个鼠标单击事件,这别给传过来。Uncle DA。这个测试呢?我就写这么多。
21:00
然后把这个呢拿过来。拿回来之后呢,这个位置呢。我们就写一个就行了。但为了增强程序的可读性,我们一般把这个单词叫以问他,这就是我刚才给大家写的,一写这个大家就懵了,我说这啥玩意儿,这是。这个名字随意的。这只是一个局部变量的变量名。你写这个函数是匿名函数,没有名字,别人会调这个函数,在调这个函数的时候,别人会给你传东西过来,你不得找一个东西接着吗?那至于你的变量值是啥,无所谓来,还有一个新知识,新知识点,各位新知识点啊,大家注意听了啊。对于键盘事件对象。来说,对于键盘事件对象来说。
22:07
都有K扣的属性,用来获取键值。我们现在已经知道这个事件啊,它是一个。键盘事件了,那么这个键盘事件它有一个什么属性呢?这个属性刘松老师你怎么知道呢?这是规定的。好比你这个位置掉sum,帮忙传一个字进去,我在大括号当中,我就可以调A点,你懂吗?你是一个字符串传给我了,我字符串有没有这个属性,我这个属性是可以干啥呢?获取什么呢?字符串长度吗?那现在呢,就相当于这个位置是一个事件,这个事件是什么事件啊,是一个键盘事件,键盘事件有一个K扣的属性。
23:11
可以获取到键值,我现在把这个事通知给你,你不需要去理解啊,来这个位置我们可以把它弹出来,看看他的K扣是多少。变成别人随意,这个是A,这个就是A啊。变量名是随便的。那现在呢,我们在这刷新之后呢,我们敲一下回车是13,我敲一下ESC,不是ESC啊,按错了按一啊来。我摁一下,我就在这吧,光标在这摁一下EC27。是吧,那现在我要是敲回车登录的话,我代码该怎么写啊?假如说我敲回车登录,我应该怎么写这个程序?对,还是拿这个u nameme吧,拿到它之后点on,什么on down是不是,然后function回调函数,然后呢,Event加上接下来if event.key code要等于等于等于多少?13,三个等号或两个等号都行啊,你愿意用哪用哪个,那这个时候是代表正在进行验证,对吧?
24:36
那现在呢,我们在这呢,刷新之后呢,我们在这呢写ABCDEF这输输用户名,输什么他都不会登录对吧,知道敲到什么推车,你看就登录了。是就正在进行验证啊,啊就是这个大家以后会用。就登录的时候,用户不一定点什么登录。它是输入用户信息敲回车。
25:13
有有有这么一个变量啊,可以接收刚刚发生的那个事件对象,这个事件创建出来之后呢,它自动给我们传过来的,你只需要用一个变量名去接收就行了。好了,这个呢,是关于咱们这个怎么去获取键值。啊,怎么获取兼职。
我来说两句