1
00:00:01,520 --> 00:00:05,350
<v Jonas>So let's now see event propagation in practice,</v>

2
00:00:05,350 --> 00:00:07,713
and mainly event bubbling.

3
00:00:09,460 --> 00:00:11,600
And we're gonna do that by attaching

4
00:00:11,600 --> 00:00:15,220
event handlers to this navigation link here,

5
00:00:15,220 --> 00:00:18,220
and also, all of its parent elements.

6
00:00:18,220 --> 00:00:20,070
Then, as we click this link,

7
00:00:20,070 --> 00:00:21,850
we will give all these elements

8
00:00:21,850 --> 00:00:23,830
random background colors,

9
00:00:23,830 --> 00:00:25,920
and this will then allow us to visualize

10
00:00:25,920 --> 00:00:29,460
exactly how event bubbling is happening.

11
00:00:29,460 --> 00:00:33,170
And it will make sense once you see it actually working.

12
00:00:33,170 --> 00:00:36,320
And let's actually start by creating that random color

13
00:00:36,320 --> 00:00:38,050
that I just mentioned.

14
00:00:38,050 --> 00:00:43,050
And a random color is basically, just a string, like RGB,

15
00:00:43,220 --> 00:00:46,123
and then with a value between 0 and 255.

16
00:00:48,240 --> 00:00:51,520
So here, with commas, actually.

17
00:00:51,520 --> 00:00:53,470
And so you'll see that VS code

18
00:00:53,470 --> 00:00:55,593
is already showing this as a color.

19
00:00:56,850 --> 00:01:00,063
So let's start with the random number generator.

20
00:01:01,200 --> 00:01:03,330
And this one I will simply write now,

21
00:01:03,330 --> 00:01:06,253
because we already did it in the previous section.

22
00:01:09,500 --> 00:01:11,543
So that's gonna be math dot floor.

23
00:01:15,580 --> 00:01:18,573
So maybe I could've just copied this code here.

24
00:01:20,410 --> 00:01:22,760
But then it would appear that this code,

25
00:01:22,760 --> 00:01:24,780
simply magically appears,

26
00:01:24,780 --> 00:01:26,800
and I don't really like that,

27
00:01:26,800 --> 00:01:28,653
when I'm watching a tutorial myself.

28
00:01:29,810 --> 00:01:30,643
Okay.

29
00:01:30,643 --> 00:01:32,860
So this was the formula that we used before,

30
00:01:32,860 --> 00:01:35,160
to generate a random integer.

31
00:01:35,160 --> 00:01:39,433
And now we can use that, to create a random color.

32
00:01:40,440 --> 00:01:42,273
So random color.

33
00:01:44,430 --> 00:01:46,593
And let's use another arrow function here.

34
00:01:49,090 --> 00:01:52,287
And so now we simply need to follow this formula here.

35
00:01:54,040 --> 00:01:55,818
So here we need,

36
00:01:55,818 --> 00:01:56,651
randomInt.

37
00:01:59,210 --> 00:02:02,953
And as I said, with a value between 0 and 255.

38
00:02:05,660 --> 00:02:08,103
So this and then three times.

39
00:02:11,470 --> 00:02:13,900
Okay, and that's it.

40
00:02:13,900 --> 00:02:15,313
Let's just check it out.

41
00:02:18,760 --> 00:02:19,713
255.

42
00:02:24,610 --> 00:02:27,050
Oh, that's not what I wanted.

43
00:02:27,050 --> 00:02:28,040
And so you'll see,

44
00:02:28,040 --> 00:02:32,003
that random colors keep appearing, down there now.

45
00:02:33,150 --> 00:02:35,080
Okay, but now that's actually attached

46
00:02:35,080 --> 00:02:37,773
to the event handlers, that I was mentioning,

47
00:02:38,650 --> 00:02:42,110
so I want to attach an event handler to this link,

48
00:02:42,110 --> 00:02:44,743
and then to the parent elements as well.

49
00:02:46,060 --> 00:02:47,823
So let's check our HTML.

50
00:02:48,710 --> 00:02:52,490
And so the link itself is the nav_link.

51
00:02:52,490 --> 00:02:55,867
And then let's attach an event handler also to nav_links.

52
00:02:56,860 --> 00:03:01,147
So that's gonna be this entire header there.

53
00:03:01,147 --> 00:03:03,003
Let me actually show it to you here.

54
00:03:06,920 --> 00:03:10,110
So I'm gonna use this link here.

55
00:03:10,110 --> 00:03:12,370
So you see it's appearing in blue up there.

56
00:03:12,370 --> 00:03:14,720
So this link, then this whole element,

57
00:03:14,720 --> 00:03:17,860
and then also this entire header here.

58
00:03:17,860 --> 00:03:19,460
So that's with the class of nav.

59
00:03:24,110 --> 00:03:24,943
So,

60
00:03:26,250 --> 00:03:28,303
document.querySelector,

61
00:03:37,871 --> 00:03:41,704
and here we are actually gonna need the event,

62
00:03:42,980 --> 00:03:45,163
and then as always just to see if it works,

63
00:03:50,130 --> 00:03:51,023
and it does.

64
00:03:51,950 --> 00:03:53,843
So, let's now,

65
00:03:55,040 --> 00:03:58,700
grab some of these others.

66
00:03:58,700 --> 00:04:00,873
So that's links and nav.

67
00:04:02,130 --> 00:04:05,383
Remember, so that's the three that we want to use here.

68
00:04:08,030 --> 00:04:11,173
And so anyone that we click now, we will see link.

69
00:04:12,420 --> 00:04:14,290
So for now that doesn't really matter

70
00:04:14,290 --> 00:04:15,820
because what I want to show you now

71
00:04:15,820 --> 00:04:19,730
is what happens when we assign a random background color

72
00:04:19,730 --> 00:04:23,580
to, first starting with this one.

73
00:04:23,580 --> 00:04:25,770
So we can say this,

74
00:04:25,770 --> 00:04:27,693
and remember that in an event handler

75
00:04:27,693 --> 00:04:31,130
that this keyword, points always to the element

76
00:04:31,130 --> 00:04:34,210
on which that event handler is attached.

77
00:04:34,210 --> 00:04:36,913
So in this case, that's gonna be this link.

78
00:04:37,900 --> 00:04:39,010
All right.

79
00:04:39,010 --> 00:04:42,893
So we say this.style.backgroundColor,

80
00:04:46,760 --> 00:04:50,163
and set it equal to a random color.

81
00:04:52,470 --> 00:04:55,450
And for now, let's just get rid of these here

82
00:04:56,360 --> 00:04:57,773
just to see if this works.

83
00:04:59,900 --> 00:05:02,560
And now we see this is jumping around

84
00:05:02,560 --> 00:05:05,453
and that's because of this hash there.

85
00:05:06,560 --> 00:05:07,620
So let me get rid

86
00:05:08,820 --> 00:05:09,993
of this for now,

87
00:05:14,870 --> 00:05:16,463
and this here as well.

88
00:05:20,450 --> 00:05:22,853
And now as we click, it reloads the page.

89
00:05:23,750 --> 00:05:28,460
So what we need here is this, I guess.

90
00:05:28,460 --> 00:05:30,650
And so now it works.

91
00:05:30,650 --> 00:05:33,290
And so as we click here, we see that the color

92
00:05:33,290 --> 00:05:35,640
of this element keeps changing.

93
00:05:35,640 --> 00:05:39,470
But now what if we perform the exact same action

94
00:05:39,470 --> 00:05:40,903
on the parent element?

95
00:05:42,730 --> 00:05:44,033
So let's copy this,

96
00:05:46,190 --> 00:05:47,610
and to put it here,

97
00:05:47,610 --> 00:05:51,160
and again, keep in mind that this nav_links element

98
00:05:51,160 --> 00:05:54,040
is the parent of this link.

99
00:05:54,040 --> 00:05:55,590
So it's all of this block here.

100
00:05:56,530 --> 00:05:58,400
So when I click this link now here,

101
00:05:58,400 --> 00:06:00,380
what do you think is gonna happen

102
00:06:00,380 --> 00:06:02,980
to the nav_links element

103
00:06:02,980 --> 00:06:04,950
so to that whole container.

104
00:06:04,950 --> 00:06:06,173
Well, let's see.

105
00:06:07,900 --> 00:06:10,700
And you see that the container

106
00:06:10,700 --> 00:06:14,810
also got its own random background color.

107
00:06:14,810 --> 00:06:17,550
So based on what we learned in the last video,

108
00:06:17,550 --> 00:06:19,593
why do you think this is happening?

109
00:06:20,480 --> 00:06:24,280
Well, just as we learned before the event actually happens

110
00:06:24,280 --> 00:06:26,650
at the document root and from there

111
00:06:26,650 --> 00:06:29,820
it then travels down to the target element.

112
00:06:29,820 --> 00:06:32,430
And so in this case, that is this link.

113
00:06:32,430 --> 00:06:35,070
And then from there, it bubbles up.

114
00:06:35,070 --> 00:06:39,380
And bubbling up means that basically it's as if the event

115
00:06:39,380 --> 00:06:43,090
had also happened in all of the parent elements.

116
00:06:43,090 --> 00:06:46,220
And so that is the reason why this exact event

117
00:06:46,220 --> 00:06:50,230
is now also being handled by this event listener here

118
00:06:50,230 --> 00:06:53,700
that is on nav_links, okay?

119
00:06:53,700 --> 00:06:58,000
So again, it is as if the click event here on this link

120
00:06:58,000 --> 00:07:01,700
had also happened right here in this element,

121
00:07:01,700 --> 00:07:04,960
so in the nav_links element, all right?

122
00:07:04,960 --> 00:07:08,170
So both of these handlers here are now handling

123
00:07:08,170 --> 00:07:12,850
the same event which happened here on this link.

124
00:07:12,850 --> 00:07:16,380
And as we keep clicking of course, the same keeps happening.

125
00:07:16,380 --> 00:07:18,190
Now, what do you think happens

126
00:07:18,190 --> 00:07:22,760
when we click only outside here? So only in the nav_links?

127
00:07:22,760 --> 00:07:23,643
Well, let's see.

128
00:07:25,940 --> 00:07:30,940
So you see that the color on the link itself keeps unchanged

129
00:07:31,930 --> 00:07:35,460
and that's because this is the parent element.

130
00:07:35,460 --> 00:07:36,660
And so from here,

131
00:07:36,660 --> 00:07:40,193
the event only bubbles up to its parent elements.

132
00:07:41,350 --> 00:07:44,380
So let's see what happens when we actually also paste

133
00:07:44,380 --> 00:07:47,423
this here into this whole nav bar.

134
00:07:48,930 --> 00:07:50,053
So let's see.

135
00:07:50,910 --> 00:07:54,260
And indeed now the click event that happened here

136
00:07:54,260 --> 00:07:57,600
was indeed handled in all three places.

137
00:07:57,600 --> 00:08:01,660
So in all three elements, which have a click event handler.

138
00:08:01,660 --> 00:08:05,110
Great. But let's now dig a little bit deeper

139
00:08:05,110 --> 00:08:07,313
and talk about the events target.

140
00:08:08,690 --> 00:08:11,593
So here let me log to the console.

141
00:08:12,850 --> 00:08:17,747
First saying that this is the LINK and then event.target.

142
00:08:18,910 --> 00:08:23,830
And the target is essentially where the event originated.

143
00:08:23,830 --> 00:08:26,020
So where the event first happened.

144
00:08:26,020 --> 00:08:28,670
So this is not the element on which the handler

145
00:08:28,670 --> 00:08:31,630
is actually attached, okay?

146
00:08:31,630 --> 00:08:34,930
So again, this is where the event happened.

147
00:08:34,930 --> 00:08:37,300
So in this case where the click happened,

148
00:08:37,300 --> 00:08:39,140
and it is not the element

149
00:08:39,140 --> 00:08:41,623
on which the event handler was attached.

150
00:08:43,740 --> 00:08:45,773
So let me put the same here also.

151
00:08:51,790 --> 00:08:55,340
And let's call this one here the CONTAINER

152
00:08:57,020 --> 00:08:57,853
and the NAV.

153
00:09:00,020 --> 00:09:01,830
Now, watch what happens again

154
00:09:01,830 --> 00:09:04,663
when I click on this link.

155
00:09:07,380 --> 00:09:08,620
So, one more time.

156
00:09:08,620 --> 00:09:11,523
All the three elements got a random background color.

157
00:09:12,370 --> 00:09:15,830
And you see that the target, which is this one here,

158
00:09:15,830 --> 00:09:17,373
is always the same.

159
00:09:19,760 --> 00:09:21,440
So, in all three handlers,

160
00:09:21,440 --> 00:09:24,890
the target element will always be the same.

161
00:09:24,890 --> 00:09:26,540
And that's of course, the element

162
00:09:26,540 --> 00:09:28,730
where the click first happened.

163
00:09:28,730 --> 00:09:31,650
And it appears in all the three handlers

164
00:09:31,650 --> 00:09:34,260
because all of them are essentially handling

165
00:09:34,260 --> 00:09:36,330
the exact same event.

166
00:09:36,330 --> 00:09:38,060
So, this e here,

167
00:09:38,060 --> 00:09:41,310
so this event that each of them receives,

168
00:09:41,310 --> 00:09:44,320
is indeed, the exact same event.

169
00:09:44,320 --> 00:09:48,230
And again, that is because of event bubbling.

170
00:09:48,230 --> 00:09:51,580
So, the event originates here in this link,

171
00:09:51,580 --> 00:09:54,580
but then it bubbles up to its parent element,

172
00:09:54,580 --> 00:09:55,800
which is this one.

173
00:09:55,800 --> 00:09:58,870
And from there to its next parent element.

174
00:09:58,870 --> 00:10:01,500
And from there, it will travel even further up

175
00:10:01,500 --> 00:10:02,910
in the DOM Tree.

176
00:10:02,910 --> 00:10:05,010
And so we can then handle that event

177
00:10:05,010 --> 00:10:07,030
in all of the parent elements

178
00:10:07,030 --> 00:10:09,443
and that is exactly what we did here.

179
00:10:11,590 --> 00:10:13,060
Now, besides the target,

180
00:10:13,060 --> 00:10:15,083
there's actually also the currentTarget.

181
00:10:16,750 --> 00:10:19,220
So, let me log that here as well.

182
00:10:19,220 --> 00:10:21,740
And the currentTarget is indeed,

183
00:10:21,740 --> 00:10:24,823
the element on which the event handler is attached.

184
00:10:27,530 --> 00:10:30,828
So, e.currentTarget

185
00:10:30,828 --> 00:10:33,503
and here, e.currentTarget.

186
00:10:35,037 --> 00:10:36,883
And so if we do this now,

187
00:10:38,980 --> 00:10:41,010
then you will see that the currentTarget

188
00:10:41,010 --> 00:10:42,470
is not the same.

189
00:10:42,470 --> 00:10:44,220
Well, in the link it is of course,

190
00:10:44,220 --> 00:10:46,800
because that's where the event happened

191
00:10:46,800 --> 00:10:49,560
and it's also where the handler is attached to.

192
00:10:49,560 --> 00:10:53,358
But then here it is, of course the nav_links.

193
00:10:53,358 --> 00:10:57,330
So, the container and here, the whole navigation element.

194
00:10:58,850 --> 00:11:01,560
And so you might have noticed

195
00:11:01,560 --> 00:11:03,540
that the currentTarget

196
00:11:04,480 --> 00:11:07,883
is exactly the same as the this keyword.

197
00:11:09,820 --> 00:11:10,820
So, the this keyword

198
00:11:10,820 --> 00:11:14,300
is also the one pointing to the element

199
00:11:14,300 --> 00:11:17,250
on which the EventListener is attached to.

200
00:11:17,250 --> 00:11:18,703
So, such as we used here.

201
00:11:21,410 --> 00:11:23,670
And all of this is important to know

202
00:11:23,670 --> 00:11:26,450
when you really want to gain a deep understanding

203
00:11:26,450 --> 00:11:29,053
of the DOM and how it works.

204
00:11:30,250 --> 00:11:32,603
So, here you see, we got indeed, true.

205
00:11:33,450 --> 00:11:37,040
So, the this keyword and event.currentTarget

206
00:11:37,040 --> 00:11:41,050
are gonna be exactly the same in any event handler.

207
00:11:41,050 --> 00:11:43,190
Another thing that I wanted to show you

208
00:11:43,190 --> 00:11:46,393
is that we can actually stop the event propagation.

209
00:11:48,380 --> 00:11:50,663
So, let me show that to you,

210
00:11:51,694 --> 00:11:54,180
propagation.

211
00:11:54,180 --> 00:11:55,890
And so all we have to do

212
00:11:55,890 --> 00:11:59,600
is to simply call on the event, stopPropagation,

213
00:12:02,550 --> 00:12:03,383
and that's it.

214
00:12:04,240 --> 00:12:06,550
So when we try to do the same thing now,

215
00:12:06,550 --> 00:12:07,793
watch what happens.

216
00:12:10,000 --> 00:12:12,030
So now, the two parent elements

217
00:12:12,030 --> 00:12:14,550
did not change their background colors,

218
00:12:14,550 --> 00:12:17,360
which means that the event never arrived

219
00:12:17,360 --> 00:12:19,760
at those elements, right.

220
00:12:19,760 --> 00:12:21,920
That's why they weren't handled there,

221
00:12:21,920 --> 00:12:24,970
and again, that is because we stopped the propagation

222
00:12:24,970 --> 00:12:26,280
right here.

223
00:12:26,280 --> 00:12:28,710
Okay, and so, the propagation phase

224
00:12:28,710 --> 00:12:31,360
then never happened for this event,

225
00:12:31,360 --> 00:12:36,270
and therefore, these events never reached this element,

226
00:12:36,270 --> 00:12:38,123
and also, not this element.

227
00:12:39,450 --> 00:12:40,530
Am I right?

228
00:12:40,530 --> 00:12:44,470
Now in practice, that's usually not a good idea

229
00:12:44,470 --> 00:12:46,090
to stop propagation,

230
00:12:46,090 --> 00:12:47,960
but I still showed it to you here

231
00:12:47,960 --> 00:12:51,270
in case you really need it sometime.

232
00:12:51,270 --> 00:12:54,000
So stopping the event propagation like this

233
00:12:54,000 --> 00:12:58,640
can sometimes fix problems in very complex applications

234
00:12:58,640 --> 00:13:01,880
with many handlers for the same events,

235
00:13:01,880 --> 00:13:02,930
but in general,

236
00:13:02,930 --> 00:13:04,560
it's not really a good idea

237
00:13:04,560 --> 00:13:08,070
to stop the propagation of events.

238
00:13:08,070 --> 00:13:11,450
So as we just saw, these three event handlers

239
00:13:11,450 --> 00:13:14,240
that we set up here receive events

240
00:13:14,240 --> 00:13:15,970
from the target elements

241
00:13:15,970 --> 00:13:19,860
and also from the bubbling phase, right.

242
00:13:19,860 --> 00:13:22,790
So in other words, the event handler functions

243
00:13:22,790 --> 00:13:25,060
are listening for click events

244
00:13:25,060 --> 00:13:28,563
that happen on the element itself, like this,

245
00:13:29,640 --> 00:13:34,030
right, or like this, and we're now, of course,

246
00:13:34,030 --> 00:13:37,370
only the background color of this one changes,

247
00:13:37,370 --> 00:13:39,300
and they are also listening for events

248
00:13:39,300 --> 00:13:43,030
that keep bubbling up from their child elements

249
00:13:43,030 --> 00:13:45,670
and that's the reason why the color changes

250
00:13:45,670 --> 00:13:48,163
in all of the parent elements here as well.

251
00:13:49,290 --> 00:13:51,780
So the two phases that I just described

252
00:13:51,780 --> 00:13:54,460
are phase two and phase three

253
00:13:54,460 --> 00:13:58,340
in the slide that we saw in the last video, right.

254
00:13:58,340 --> 00:14:01,490
But now, what about the capture phase?

255
00:14:01,490 --> 00:14:03,640
So that was phase one.

256
00:14:03,640 --> 00:14:06,930
Well, as we learned, events are captured

257
00:14:06,930 --> 00:14:09,730
when they come down from the document route

258
00:14:09,730 --> 00:14:11,890
all the way to the target,

259
00:14:11,890 --> 00:14:15,270
but our event handlers are not picking up these events

260
00:14:15,270 --> 00:14:17,060
during the capture phase.

261
00:14:17,060 --> 00:14:18,490
Remember that?

262
00:14:18,490 --> 00:14:21,503
So I mentioned that at event listener here,

263
00:14:21,503 --> 00:14:25,290
it's only listening for events in the bubbling phase,

264
00:14:25,290 --> 00:14:27,770
but not in the capturing phase.

265
00:14:27,770 --> 00:14:29,830
So that is the default behavior

266
00:14:29,830 --> 00:14:32,170
of the add event listener method,

267
00:14:32,170 --> 00:14:35,160
and the reason for that is that the capturing phase

268
00:14:35,160 --> 00:14:37,460
is usually irrelevant for us.

269
00:14:37,460 --> 00:14:39,830
It's just not that useful.

270
00:14:39,830 --> 00:14:41,850
Now, on the other hand, the bubbling phase

271
00:14:41,850 --> 00:14:46,040
can be very useful for something called event delegation.

272
00:14:46,040 --> 00:14:47,830
So that's something that we're going to do

273
00:14:47,830 --> 00:14:49,520
in the next lecture.

274
00:14:49,520 --> 00:14:52,690
However, if we really do want to catch events

275
00:14:52,690 --> 00:14:54,530
during the capturing phase,

276
00:14:54,530 --> 00:14:56,900
we can define a third parameter

277
00:14:56,900 --> 00:14:58,913
in the addEventlistener function.

278
00:15:00,090 --> 00:15:01,600
For example here,

279
00:15:01,600 --> 00:15:05,703
we can set the third parameter to true or false.

280
00:15:07,330 --> 00:15:09,160
And so let's set it to true.

281
00:15:09,160 --> 00:15:12,910
And so in this case where this used capture parameter

282
00:15:12,910 --> 00:15:14,580
is set to true,

283
00:15:14,580 --> 00:15:18,070
the event handler will no longer listen to bubbling events,

284
00:15:18,070 --> 00:15:21,120
but instead, to capturing events.

285
00:15:21,120 --> 00:15:23,620
Now, in practice, that's gonna look the same here,

286
00:15:26,720 --> 00:15:29,260
but as we take a look here in our log,

287
00:15:29,260 --> 00:15:30,820
you will see that now,

288
00:15:30,820 --> 00:15:33,900
the NAV is actually the first appearing.

289
00:15:33,900 --> 00:15:36,717
And let's clear that here and see it again.

290
00:15:38,330 --> 00:15:41,310
So, you see that now the first element

291
00:15:41,310 --> 00:15:45,060
through which the event passes, is the navigation.

292
00:15:45,060 --> 00:15:46,250
And the reason for that

293
00:15:46,250 --> 00:15:48,960
is that this element is now actually listening

294
00:15:48,960 --> 00:15:52,600
for the event as it travels down from the DOM,

295
00:15:52,600 --> 00:15:56,120
while these other ones are listening for the event,

296
00:15:56,120 --> 00:15:58,090
as it travels back up.

297
00:15:58,090 --> 00:15:59,880
And so that happens later

298
00:15:59,880 --> 00:16:03,840
and therefore, the NAV is now the first one to show up

299
00:16:03,840 --> 00:16:06,970
because this, of course, is the first one to happen.

300
00:16:06,970 --> 00:16:10,780
Because first event travels down all the way to the target

301
00:16:10,780 --> 00:16:13,940
and only then, it bubbles back up.

302
00:16:13,940 --> 00:16:16,530
And so these other two event handlers here,

303
00:16:16,530 --> 00:16:18,960
they are looking for bubbling events.

304
00:16:18,960 --> 00:16:20,830
And so, therefore, they are gonna happen

305
00:16:20,830 --> 00:16:22,623
after this first one.

306
00:16:23,930 --> 00:16:26,870
Now, they are still all working with the same event.

307
00:16:26,870 --> 00:16:29,690
They're simply doing it in different phases

308
00:16:29,690 --> 00:16:31,770
of the event propagation.

309
00:16:31,770 --> 00:16:33,650
And if that sounds confusing,

310
00:16:33,650 --> 00:16:36,270
then please take another look at the slide

311
00:16:36,270 --> 00:16:38,480
that I showed you in the last video.

312
00:16:38,480 --> 00:16:40,460
You can imagine that slide maybe

313
00:16:40,460 --> 00:16:43,200
with these elements that we're working with here,

314
00:16:43,200 --> 00:16:46,680
and then picture the event traveling down and up again,

315
00:16:46,680 --> 00:16:51,000
and how we capture it here in the capturing phase,

316
00:16:51,000 --> 00:16:54,750
so with this flag here set to true.

317
00:16:54,750 --> 00:16:56,860
So, I hope that made sense,

318
00:16:56,860 --> 00:16:59,260
but let's now actually get rid of this.

319
00:16:59,260 --> 00:17:03,130
So, by default, this is set to false.

320
00:17:03,130 --> 00:17:05,450
And so getting rid of this

321
00:17:05,450 --> 00:17:08,960
is the same as setting this argument to false.

322
00:17:08,960 --> 00:17:13,960
So, as I said, capturing is actually rarely used these days.

323
00:17:14,240 --> 00:17:16,490
And the only reason why both capturing

324
00:17:16,490 --> 00:17:18,980
and bubbling actually exist,

325
00:17:18,980 --> 00:17:21,380
is only for historical reasons.

326
00:17:21,380 --> 00:17:23,830
So, from the time where different browsers

327
00:17:23,830 --> 00:17:27,350
implemented different versions of JavaScript.

328
00:17:27,350 --> 00:17:29,600
But anyway, what really matters

329
00:17:29,600 --> 00:17:31,690
that you really understand here,

330
00:17:31,690 --> 00:17:34,680
is that why these three boxes here

331
00:17:34,680 --> 00:17:36,700
get three different background colors,

332
00:17:36,700 --> 00:17:39,940
even though the click only happened on this element.

333
00:17:39,940 --> 00:17:42,980
And I think I made that really clear in this video

334
00:17:42,980 --> 00:17:44,293
and also in the last one.

