All language subtitles for 189 Types of Events and Event Handlers.en_US1
Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (SoranĂ®)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,300 --> 00:00:03,400 line:15%
In this lecture and the next ones,
2
00:00:03,400 --> 00:00:06,870 line:15%
we're gonna talk a little bit more about events.
3
00:00:06,870 --> 00:00:10,700 line:15%
Now, we already worked with events before, of course,
4
00:00:10,700 --> 00:00:13,600 line:15%
but now let's add some more important concepts
5
00:00:13,600 --> 00:00:16,143 line:15%
and also make things a bit more clear.
6
00:00:18,070 --> 00:00:21,220
So, an event is basically a signal
7
00:00:21,220 --> 00:00:24,500
that is generated by a certain dumb node
8
00:00:24,500 --> 00:00:28,040
and a signal means that something has happened,
9
00:00:28,040 --> 00:00:31,920
for example, a click somewhere or the mouse moving,
10
00:00:31,920 --> 00:00:34,670
or the user triggering the full screen mode
11
00:00:34,670 --> 00:00:37,260
and really anything of importance,
12
00:00:37,260 --> 00:00:41,240
that happens on our webpage, generates an event.
13
00:00:41,240 --> 00:00:42,740
And as we already know,
14
00:00:42,740 --> 00:00:44,790
we can then list and fold these events
15
00:00:44,790 --> 00:00:47,646
in our code using EventListeners
16
00:00:47,646 --> 00:00:50,900
so that we can then handle them if we'd like.
17
00:00:50,900 --> 00:00:54,500
But no matter if we handle a certain event or not,
18
00:00:54,500 --> 00:00:56,150
for example, a click,
19
00:00:56,150 --> 00:00:59,890
that event will always happen when a user clicks.
20
00:00:59,890 --> 00:01:01,800
So, it doesn't matter if we're actually
21
00:01:01,800 --> 00:01:03,493
listening for it or not.
22
00:01:05,060 --> 00:01:07,700
And that's gonna be important to understand
23
00:01:07,700 --> 00:01:09,480
also in the next video.
24
00:01:09,480 --> 00:01:11,550
Now, we already worked with a couple
25
00:01:11,550 --> 00:01:14,480
of different events earlier in the course,
26
00:01:14,480 --> 00:01:18,370
but now let's take a look at another type of event,
27
00:01:18,370 --> 00:01:20,673
which is the mouseenter event,
28
00:01:22,480 --> 00:01:25,170
but let's start by selecting an element
29
00:01:25,170 --> 00:01:28,260
and let's use the h1 element is time.
30
00:01:28,260 --> 00:01:31,650
So, we have an h1, which is this here.
31
00:01:31,650 --> 00:01:36,650
And so, let's just say document.querySelector h1,
32
00:01:38,080 --> 00:01:41,130
and now we can listen for that event.
33
00:01:41,130 --> 00:01:44,309
So, we already know about this one,
34
00:01:44,309 --> 00:01:46,180
so, addEventListener.
35
00:01:46,180 --> 00:01:48,150
But in this video, we're gonna take a look
36
00:01:48,150 --> 00:01:51,283
at two more ways of listening for events.
37
00:01:53,380 --> 00:01:58,380
But anyway, let's now use mouseenter, as I said previously.
38
00:01:58,400 --> 00:02:01,330
So, mouseenter and then as always
39
00:02:01,330 --> 00:02:03,423
a function with an event.
40
00:02:05,120 --> 00:02:07,760
So, the mouseenter event here,
41
00:02:07,760 --> 00:02:11,620
is a little bit like the hover event in CSS.
42
00:02:11,620 --> 00:02:15,730
So, it fires whenever a mouse enters a certain element.
43
00:02:15,730 --> 00:02:17,633
So, just as the name says.
44
00:02:19,520 --> 00:02:22,820
So, whenever that happens, let's create an alert,
45
00:02:22,820 --> 00:02:24,843
which says, addEventListener,
46
00:02:27,500 --> 00:02:30,690
just so we know where this one is coming from.
47
00:02:30,690 --> 00:02:31,523
Great!
48
00:02:33,130 --> 00:02:36,523
You are reading the heading.
49
00:02:39,761 --> 00:02:41,403
And let's try it out now.
50
00:02:42,640 --> 00:02:47,640
And indeed, as we hovered over it, we got this alert
51
00:02:47,660 --> 00:02:49,563
and if we do it again, it comes again.
52
00:02:51,450 --> 00:02:53,063
So, that works just fine.
53
00:02:54,290 --> 00:02:56,020
Now, let's now actually take a look
54
00:02:56,020 --> 00:02:59,143
at a list of different events on MDN.
55
00:03:00,580 --> 00:03:03,443
Let's say JavaScript events.
56
00:03:05,250 --> 00:03:07,330
And yeah, this is what I was looking for,
57
00:03:07,330 --> 00:03:08,993
so this event reference.
58
00:03:10,540 --> 00:03:15,453
So, let's take a look at some of the more important ones.
59
00:03:16,760 --> 00:03:21,580
So, we see that we already used the click events.
60
00:03:22,720 --> 00:03:25,280
So where are they up?
61
00:03:25,280 --> 00:03:26,880
So here mouse events.
62
00:03:26,880 --> 00:03:30,820
So click, this is the one we have been using all the time,
63
00:03:30,820 --> 00:03:32,470
but this time we used mouseenter.
64
00:03:33,560 --> 00:03:36,150
And as you see, there's then also mouseleave,
65
00:03:36,150 --> 00:03:40,760
which is fired off when the mouse is moved off the element.
66
00:03:40,760 --> 00:03:42,430
And then you have all of these
67
00:03:42,430 --> 00:03:44,430
and of course you can take a look
68
00:03:44,430 --> 00:03:47,000
at this list here by yourself
69
00:03:48,390 --> 00:03:50,680
and you see that there is all
70
00:03:50,680 --> 00:03:52,580
these different kinds of events
71
00:03:52,580 --> 00:03:56,600
that we can eventually learn how to respond to.
72
00:03:56,600 --> 00:03:59,520
But usually the most important ones are the ones
73
00:03:59,520 --> 00:04:02,393
related to mouse and keyboard ones.
74
00:04:04,000 --> 00:04:07,343
But for example, there are also some for the clipboard,
75
00:04:08,340 --> 00:04:09,823
and for full screen,
76
00:04:11,380 --> 00:04:15,420
and for resizing the page and for when we scroll the page
77
00:04:15,420 --> 00:04:17,093
and so on and so forth.
78
00:04:19,743 --> 00:04:22,090
So, here is the warning again,
79
00:04:22,090 --> 00:04:24,630
but anyway, let me now show you another way
80
00:04:24,630 --> 00:04:27,803
of attaching an EventListener to an element.
81
00:04:28,870 --> 00:04:33,360
And that is by using the so-called on-event property
82
00:04:33,360 --> 00:04:35,630
directly on the element.
83
00:04:35,630 --> 00:04:38,850
So for example, when we want to listen for mouseenter,
84
00:04:38,850 --> 00:04:41,337
there is a property called onmouseenter,
85
00:04:43,390 --> 00:04:47,773
and then we can simply set that property to dysfunction.
86
00:04:54,830 --> 00:04:59,830
so here let's do that, just to see.
87
00:05:00,630 --> 00:05:03,920
And so now we get, of course, the alert from before,
88
00:05:03,920 --> 00:05:06,370
but we should get a second alert as well.
89
00:05:06,370 --> 00:05:08,053
And indeed here it is.
90
00:05:09,960 --> 00:05:12,590
And so, actually for each of the events
91
00:05:12,590 --> 00:05:14,360
that we just saw in the table,
92
00:05:14,360 --> 00:05:18,050
there is one on-event property like this one,
93
00:05:18,050 --> 00:05:20,433
for example, also on click.
94
00:05:22,220 --> 00:05:24,850
However, this way of listening to events
95
00:05:24,850 --> 00:05:26,540
is a bit old school.
96
00:05:26,540 --> 00:05:29,700
So, it used to be done like this in the old days,
97
00:05:29,700 --> 00:05:33,150
but now we usually always use addEventListener.
98
00:05:34,540 --> 00:05:38,260
So, I'm just showing you this in case you ever come across
99
00:05:38,260 --> 00:05:40,203
this way of listening for events.
100
00:05:41,140 --> 00:05:44,910
Now, there are two ways why addEventListener is better.
101
00:05:44,910 --> 00:05:47,240
And the first one is that it allows us to add
102
00:05:47,240 --> 00:05:50,700
multiple event listeners to the same event.
103
00:05:50,700 --> 00:05:52,790
So, we could do this here again
104
00:05:52,790 --> 00:05:55,180
and simply change the function here.
105
00:05:55,180 --> 00:05:57,760
But if we did the same with this property,
106
00:05:57,760 --> 00:06:00,380
then the second function would basically
107
00:06:00,380 --> 00:06:02,463
simply override the first one.
108
00:06:04,860 --> 00:06:07,818
So, that's one advantage of addEventListener.
109
00:06:07,818 --> 00:06:10,090
And the second one even more important
110
00:06:10,090 --> 00:06:13,400
is that we can actually remove an event handler
111
00:06:13,400 --> 00:06:16,090
in case we don't need it anymore.
112
00:06:16,090 --> 00:06:19,150
And this is something that we hadn't done before,
113
00:06:19,150 --> 00:06:20,910
but it's actually very simple
114
00:06:20,910 --> 00:06:23,720
and very useful from time to time.
115
00:06:23,720 --> 00:06:26,810
And to do that, first we need to export the function
116
00:06:26,810 --> 00:06:28,493
into a named function.
117
00:06:29,590 --> 00:06:33,700
So we cannot just write, for example, the same function
118
00:06:33,700 --> 00:06:36,673
and expect it to work, that's not gonna work.
119
00:06:37,640 --> 00:06:39,320
So, let's take this here out
120
00:06:46,400 --> 00:06:51,400
and let's say alert h1 is dysfunction.
121
00:06:51,870 --> 00:06:56,503
And then on h1, here I want to pass in debt.
122
00:06:58,090 --> 00:06:59,880
Let's just comment out this one,
123
00:06:59,880 --> 00:07:02,050
so it doesn't get in our way.
124
00:07:02,050 --> 00:07:05,803
And so let's see, and indeed it still works.
125
00:07:08,960 --> 00:07:10,690
That was not on purpose,
126
00:07:10,690 --> 00:07:14,110
but we can now actually prevent that from happening.
127
00:07:14,110 --> 00:07:18,210
So, after we listened for an event
128
00:07:18,210 --> 00:07:20,940
and then handle that event here in dysfunction,
129
00:07:20,940 --> 00:07:23,573
we can then remove that event listener.
130
00:07:24,520 --> 00:07:29,520
So, here we can say h1 and now removeEventListener.
131
00:07:31,890 --> 00:07:34,037
And again, we have to say mouseenter
132
00:07:35,290 --> 00:07:37,850
and then the name of the function.
133
00:07:37,850 --> 00:07:39,570
And so this is why we had to export
134
00:07:39,570 --> 00:07:42,623
the function into its own function.
135
00:07:44,600 --> 00:07:46,770
And so, let's see.
136
00:07:46,770 --> 00:07:50,210
So indeed, we got this alert now,
137
00:07:50,210 --> 00:07:54,200
but if I now hovered this again, then nothing happens.
138
00:07:54,200 --> 00:07:57,020
And that's because in the same event handler function,
139
00:07:57,020 --> 00:08:00,604
we also then removed the EventListener.
140
00:08:00,604 --> 00:08:02,580
And so, this makes it that we can only
141
00:08:02,580 --> 00:08:05,090
listen for the event once.
142
00:08:05,090 --> 00:08:08,750
So, this is a nice pattern whenever you only want to listen
143
00:08:08,750 --> 00:08:10,870
to any event just once,
144
00:08:10,870 --> 00:08:14,143
but of course this doesn't have to be in here.
145
00:08:15,260 --> 00:08:18,470
So you can remove the EventListener
146
00:08:18,470 --> 00:08:20,420
at any place in our code.
147
00:08:20,420 --> 00:08:22,480
For example, we could remove it
148
00:08:22,480 --> 00:08:24,493
after a certain time has passed.
149
00:08:26,270 --> 00:08:28,230
So, let's use set time out here
150
00:08:29,500 --> 00:08:34,440
and a simple arrow function.
151
00:08:34,440 --> 00:08:37,233
And let's say, that after three seconds have passed,
152
00:08:38,100 --> 00:08:40,660
we want to remove the EventListener.
153
00:08:43,590 --> 00:08:44,913
So, now we get it.
154
00:08:45,760 --> 00:08:50,450
And right now apparently three seconds have already passed,
155
00:08:50,450 --> 00:08:51,793
and so, now it's gone.
156
00:08:54,637 --> 00:08:58,120
So, this is another pattern of removing the EventListener
157
00:08:58,120 --> 00:09:00,560
but of course there are gonna be other situations
158
00:09:00,560 --> 00:09:01,883
where this is helpful.
159
00:09:02,800 --> 00:09:06,700
Finally, there's also a third way of handling events,
160
00:09:06,700 --> 00:09:09,900
which is by using an HTML attribute.
161
00:09:09,900 --> 00:09:12,860
Now this one should actually not be used,
162
00:09:12,860 --> 00:09:15,980
but just for the sake of curiosity,
163
00:09:15,980 --> 00:09:17,480
I'm gonna show it to you here.
164
00:09:19,010 --> 00:09:23,360
So, let's actually this time use the onclick,
165
00:09:23,360 --> 00:09:25,340
just to, we have a different one.
166
00:09:25,340 --> 00:09:29,080
But so, this is quite similar to what we did here before
167
00:09:29,080 --> 00:09:32,077
in the JavaScript with the onmouseenter.
168
00:09:33,110 --> 00:09:36,240
We're simply defining it directly in HTML.
169
00:09:36,240 --> 00:09:40,000
Then here, we basically specify a string
170
00:09:40,000 --> 00:09:42,163
and then we say what we want to happen.
171
00:09:43,010 --> 00:09:46,960
So, this is pretty weird, but well,
172
00:09:46,960 --> 00:09:48,530
this is kind of old school JavaScript
173
00:09:48,530 --> 00:09:53,530
from the early days, alert.
174
00:09:55,820 --> 00:09:57,370
And so, now when we click here,
175
00:09:59,710 --> 00:10:01,433
then we get HTML alert.
176
00:10:04,850 --> 00:10:07,653
But anyway, we don't need to bother with this one,
177
00:10:08,640 --> 00:10:11,440
but I'm just gonna leave it here for you as a reference.
178
00:10:14,550 --> 00:10:17,630
And so, that's different ways of handling events
179
00:10:17,630 --> 00:10:20,400
and also how to remove EventListeners
180
00:10:20,400 --> 00:10:23,070
in case we don't need them anymore.
181
00:10:23,070 --> 00:10:26,330
Next up, you will learn about the most important property
182
00:10:26,330 --> 00:10:28,840
of events, which is bubbling.
183
00:10:28,840 --> 00:10:31,313
So, let's move on right to the next video.
13584
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.