Front-end || DOM-события в трех актах | Юрий Федоренко

Поділитися
Вставка
  • Опубліковано 3 сер 2024
  • Рассказ обо всем, что нужно знать о DOM-событиях.
    Не бывает собеседований на должность Front-end-специалиста, где не спрашивают о Document Object Model событиях.
    В этом видео все разложено по полочкам:
    00:00 - Вступление
    0:29 - Почему события в Javascript так важны
    1:17 - Акт 1. Назначение обработчиков
    7:18 - Акт 2. Объект события
    12:41 - Акт 3. Делегирование событий
    Справочник по Front-end - itwiki.dev/front-end
    А подписка на мой канал в Telegram (goo.gl/1DmE1o) еще и приносит удачу и много разборов того, что спрашивают на собеседованиях в IT-компаниях.
    Полезные ссылки:
    Все события, MDN - goo.gl/ET2mUK
    Почитать о событиях на русском (на learn.javascript.ru):
    goo.gl/NX8oTq - основы работы с DOM-событиями.
    goo.gl/QF7bdU - события в деталях
    Компьютерная Школа Hillel
    Сайт: ithillel.ua
    Facebook: / hillel.it.school
    Instagram: / hillel_itschool
    #Frontend #frontend #DOM #ITHillel #javascript #documentobjectmodel

КОМЕНТАРІ • 96

  • @valetkorolev9541
    @valetkorolev9541 5 років тому +43

    Мужик, у тебя бесподобные видео, содержательные, динамичные, объясняешь очень доступно, даже я понял)), спасибо большое!
    П.С. музыка приятная, особенно во вставках)

  • @NovikDima
    @NovikDima 6 років тому +38

    Пожалуйста, продолжайте в том же духе! Столько видео полезных всего за несколько недель! Крутяк!

  • @StanislavGrebenyukov
    @StanislavGrebenyukov 5 років тому +27

    Такой хороший контент, но эти заставки с тройной громкостью - просто ужас. Ребенок спит в соседней комнате. Смотришь-смотришь, все хорошо. И КААААК ЕБ**ЕТ

  • @typical_man6696
    @typical_man6696 5 років тому +14

    Вторым параметром необязательно функцию передавать, можно передать объект, с методом handleEvent. Тогда this в обработчике будет указывать на тот объект, который был передан. Очень удобно в классах делать вот так: el.addEventListener('click', this); (в таком случае без e.currentTarget нельзя)

  • @thesweetlife843
    @thesweetlife843 6 років тому +7

    Редко пишу комментарии, но тут написал ) Молодец автор разжевал так разжевал! сколько статей перечитал, а тут за 20 минут понял основу ! )

  • @user-fk1dt2ow6c
    @user-fk1dt2ow6c 6 років тому +1

    Настолько подробно и понятно!Спасибо огромное!!!Благодаря Вашим видео улучшил свои знания, которые были не достаточно хороши, как оказалось!!!

  • @alexsmurf5425
    @alexsmurf5425 4 роки тому +23

    У вас, конечно, очень изумительная заставка, такая сиреневая с анимацией со звуком. Но с*к* н*х** каждые 30 секунд её вставлять!? А так видео ниче, норм

    • @Kostyan-120
      @Kostyan-120 2 роки тому

      поддерживаю, видео хорошее, но заставки через слово бесят

  • @odikkor5438
    @odikkor5438 6 років тому +12

    Спасибо. Крутой формат. Продолжайте.

  • @zhnec6333
    @zhnec6333 5 років тому +2

    Отлично объясняешь , просто находка для тех кто решил выучить js, продолжай в том же духе, ведь ещё столько нормально не раскрытых тем

  • @VasiliyKolpaxidis
    @VasiliyKolpaxidis Рік тому

    Make const not var.
    Зачёт))))) Спасибо за видео. Информативно

  • @user-zt1md6qw5y
    @user-zt1md6qw5y 4 роки тому

    Видео - огонь. Лучшее объяснение из того, что я видел и слышал.

  • @orcsamuro9687
    @orcsamuro9687 2 роки тому

    Полезное видео, спасибо!

  • @denisttk
    @denisttk 3 роки тому

    Афигенно доходчиво, легко, изящно!!!! Спасибо!!!

  • @NazarLesyuk
    @NazarLesyuk 6 років тому +2

    много полезного узнал, благодарю Юрий. Продолжайте в том же духе, лайк + коммент гарантирую! =)

  • @eminsalmanov2271
    @eminsalmanov2271 5 років тому +13

    Заставка и музыка просто Зеб@л@!!!

  • @dmitrijponkin
    @dmitrijponkin 6 років тому +1

    Очень круто! Спасибо Вам))

  • @dmytrohelbak
    @dmytrohelbak 5 років тому

    Спасибо, идеальная подача!!!!

  • @hiitsif
    @hiitsif 3 роки тому

    Отличный видос!

  • @Raisor32
    @Raisor32 6 років тому +5

    Лайк не глядя=)

  • @ivanshpartko359
    @ivanshpartko359 5 років тому +1

    Спасибо, Юра

  • @freedom_twin
    @freedom_twin 4 роки тому +5

    Про passive в addEventListerner'e так и не рассказали 6:40

  • @user-rp1zn6lb3c
    @user-rp1zn6lb3c 4 роки тому

    Хочется поставить максимально много лайков, спасибо!

  • @anastasiyakisalo2343
    @anastasiyakisalo2343 5 років тому +2

    спасибо за объяснения!

  • @bigenough2122
    @bigenough2122 4 роки тому

    за прогрузки отдельный лайк) спасибо

  • @TORREScs
    @TORREScs 5 років тому +1

    Красавчик! спасибо!:)

  • @ujhljcnm
    @ujhljcnm 5 років тому +3

    спасибо. очень доступно. Но перебивки очень раздражают и отвлекают.

  • @IvanIsayev
    @IvanIsayev 6 років тому +19

    А можно покритикую? - Вырезать бы все заставки, которые вставлены на каждый чих (когда видишь её третий раз почти подряд, она начинает надоедать, раз на пятый - бесить 😁), и фоновую музыку убрать (да, совсем), очень хочется внимательно слушать, а она отвлекает - и будет супер видео 😇

    • @frezafreza2858
      @frezafreza2858 5 років тому +2

      Тоже хотел написать это. Само видео понравилось, но вот способ подачи ужасно раздражает, после пятой вставки хотелось закрыть видео уже.

    • @Nerossoul
      @Nerossoul 4 роки тому

      Да вставик прям слишком часто.

    • @vovergg
      @vovergg 4 роки тому

      Соглашусь с тем, что вставок слишком много. В остальном видео и его содержание очень понравились.

  • @user-hp2cg6px8c
    @user-hp2cg6px8c Рік тому +2

    какие-то редкие вставки
    мне кажется, надо было через слово делать вставку с зубодробительной музыкой для рыгательных вечеринок

  • @alexsmurf5425
    @alexsmurf5425 4 роки тому

    Про React прям в точку, как раз сейчас занимаюсь написанием 100500 onClick-ов в день. Ибо реакт требует тотальной декомпозиции, следовательно и кода больше

  • @eugene684
    @eugene684 5 років тому

    Круто! Непонятно почему не много просмотров.

  • @PacoOfficial
    @PacoOfficial 5 років тому

    топчик

  • @demimurych1
    @demimurych1 3 роки тому

    *Способов перехватить события далеко не три*
    Перечисленные Вами три способа, это те три способа, которые проектировались для решения этой задачи. Только это не значит что перехватить событие можно *только* такими способами.
    Существует масса вариаций сделать тоже самое в слегка не очевидной манере:
    от подмены своей функцией оригинального евентемиттера,
    до банального навешивания геттера поверх функции генерирующей событие
    или функции обслуживающей событие,
    или данных которые участвуют в обслуживании процесса события
    Не говоря уже о такой экзотике как перехват благодаря создания условий,
    в рамках которых нужное нам событие всегда будет приводит к исключению,
    которое естественно будет обработано в нашем catch блоке.
    А если начать пытаться в своей голове представить что можно наворотить манипулируя областями видимости...
    JavaScript - это язык анархистов. Он дает свободы почти столько сколько дает язык ассемблера. Очевидное следствие этого тезиса в том, что в его рамках можно реализовывать совершенно сумасшедшие вещи, кажущиеся на первый взгляд совсем не очевидными.

  • @oleksandrmorozov3051
    @oleksandrmorozov3051 6 років тому +1

    Спасибо за видео, мне нравится Ваша подача, умело и подробно рассказываете, но как по мне чересчур много заставок.

  • @flshvy
    @flshvy 4 роки тому +5

    все прекрасно, только не надо так много отбивок в ролике

  • @alexlisouski4069
    @alexlisouski4069 4 роки тому +5

    зачем отбива каждую минуту? раздражает

  • @mrGrey2009
    @mrGrey2009 5 років тому +4

    А можно пример когда с сервера приходит 1 600 000 тысяч комментариев, вместо пагинации ?)))

    • @Nerossoul
      @Nerossoul 4 роки тому

      комментариев всего 800000 :-)
      кнопочек много

  • @AndreyKarpovich
    @AndreyKarpovich 6 років тому +34

    К редактору видео: пожалуйста, на будущее выберите другую мелодию на вставки, без таких адских звуков, ладно?..

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +2

      я сам выбирал звук, сделаем потише)

    • @YmNIKYm
      @YmNIKYm 6 років тому +6

      тут вопрос не сколько в громкости, сколько в самой музыке - слишком резкий переход.
      Для каких нибудь продаж, возможно такой подход лучше, но это же образовательный материал. Пытаешься осознать сказанное, а тут тебе на звуковым молотком по голове :) ИМХО.
      Но в любом случае огромное спасибо за проделанную работу

    • @user-ds1sv9jf7d
      @user-ds1sv9jf7d 6 років тому +1

      И голос в музыке на фоне голоса говорящего отвлекает. Даже если это женский шепот.

    • @nazarnazarenko437
      @nazarnazarenko437 4 роки тому

      @@yurafedorenko1218 музыка норм)

  • @juriandrejczuk3836
    @juriandrejczuk3836 6 років тому +4

    Братан, выкидывай в свою группу в телеграмме не только задачи плз, но и подобную информацию я редко смотрю видео, а почитать люблю, пока еду на работу

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +2

      ну бро, ну у меня же каждая задачка это разбор какой-то темы, вроде и разбор прочитал, а вроде и поучился, литературная форма такая)

  • @user-ml2kt1rr4o
    @user-ml2kt1rr4o 2 роки тому

    скорость воспроизведения не добавляй, сильно отвлекает

  • @stanislavzherebchuk3674
    @stanislavzherebchuk3674 4 роки тому

    Стоит ли применять делегирование используя ref в реакте?

  • @andreytsapko4213
    @andreytsapko4213 6 років тому

    Юра, а разве в примере на 14:41 нам не нужно использовать this чтобы добраться до конкретного элемента списка?

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +4

      this, будет указывать на элемент на который навешено событие, то есть на ul, а нам это не подходит

    • @andreytsapko4213
      @andreytsapko4213 6 років тому +2

      Спасибо за видео, продолжай в том же духе!

  • @Levelord92
    @Levelord92 6 років тому

    9:20 это равенство не относится к стрелочным функциям

  • @moyarishka
    @moyarishka 6 років тому

    Крутое видео. Меня смутило ‘LI’ большими буквами в ифе. Разве так будет работать? Вроде ж не должно.

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +3

      только так и будет)

    • @juriandrejczuk3836
      @juriandrejczuk3836 6 років тому +1

      ради интереса выведи на консоль e.tagName, и увидишь что браузер вернет ответ именно большими буквами

    • @moyarishka
      @moyarishka 6 років тому

      Juri Andrejczuk ых до консоли не добралась :) смотрела с телефона :)

  • @qrthack
    @qrthack 6 років тому +2

    какой редактор кода использовался в видео?

    • @BHy4OK
      @BHy4OK 6 років тому +1

      скорее всего webstorm, phpstorm etc

    • @qrthack
      @qrthack 6 років тому

      thanks

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому

      да, вебшторм

  • @slardar5615
    @slardar5615 6 років тому +1

    var $li = ... ; Скажите, что означает доллар впереди названия переменной.

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +3

      Сергей Калашников в данном случае ничего, просто такое имя переменной. Я придерживаюсь конвенции именования согласно которой имена переменных в которых находятся DOM-элементы или их коллекции начинаются со знака доллара.
      Просто так в коде легче ориентироваться

    • @slardar5615
      @slardar5615 6 років тому

      Спасибо большое. Я так и думал :)

    • @victormog
      @victormog 5 років тому +2

      Просто понты и тоска по jQuery...
      😁

  • @2positive1
    @2positive1 5 років тому +4

    Классно объясняешь но ваши вставки 2-3 сек. сильно раздражают и сбивают фокус. Не делайте так. Или уменьшите раз в 10 это.

  • @nvrnGrek
    @nvrnGrek 4 роки тому

    10:34 функция стрелочка это ЕС5

  • @user-vr4qm3tk8v
    @user-vr4qm3tk8v 6 років тому +2

    А разве нельзя было в стрелочной функции использовать this вместо currentTarget? Ведь она не имеет своего this и использует "хозяйский"

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +1

      Юлия Павленко а какой у нее «хозяйский»? Там же будет глобальный объект тогда

    • @alisergazy4564
      @alisergazy4564 6 років тому

      ответил бы хотя бы правильно

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +3

      просто мне хочется, чтоб человек разобрался, а ответить правильно и браузерная консоль может

    • @alexanderommm
      @alexanderommm 5 років тому +1

      this в стрелочной функции указывает на window(глобальная область видимости), поэтому и его не получится использовать в стрелочной функции

  • @Enerdzizer
    @Enerdzizer 4 роки тому +3

    Перестарались с заставками и фоном. Смотреть невозможно к сожалению

  • @GEO-le5ft
    @GEO-le5ft 2 роки тому

    отл подача у тебя. Почему так мало обучающих видeо?

    • @HillelITSchool
      @HillelITSchool  2 роки тому

      У нас є плейлист з Юрієм: ua-cam.com/play/PLuEo4W0EBxtWOf1CZQNmqzwRWG9xeTOZ6.html

  • @martDKNY
    @martDKNY 4 роки тому

    6:50

  • @Vitaliy-ct2wv
    @Vitaliy-ct2wv 4 роки тому

    здесь тоже хорошо все описано learn.javascript.ru/bubbling-and-capturing

  • @KostiaBazrov
    @KostiaBazrov 4 роки тому +2

    this в стрелочных будет window

  • @gilaziev
    @gilaziev 6 років тому +1

    Несостыковка тут 14:47 внутри блока if должно быть e.currentTarget

    • @yurafedorenko1218
      @yurafedorenko1218 6 років тому +1

      как раз нет

    • @gilaziev
      @gilaziev 6 років тому

      в самом условии, ошибся

    • @gilaziev
      @gilaziev 6 років тому

      да, и тут неправ)

    • @slardar5615
      @slardar5615 6 років тому

      Не-не все правильно в if. currentTarget = this, как было сказано в видео, а target, указывает на элемент, по которому непосредственно совершенно клик. :)

  • @user-qb2kl1jn3g
    @user-qb2kl1jn3g 2 роки тому

    Содержательно, но в вставках сильно громко, раздражает.

  • @almazmusic
    @almazmusic 6 років тому

    Только вот, пожалуйста, не нужно обработчиков на ссылки :) На сабмит формы - ок, но ссылка - это ссылка.

  • @demimurych1
    @demimurych1 4 роки тому +1

    атрибут onlclik это плохо, а атрибут ng-click это хорошо - сказали они...
    Дескать разные области видимости сказали они...
    Я боюсь даже представить чему вы еще людей учите. Вы бы хоть не знаю в DevTools посмотрели бы что-ли, если не знаете кода фреймворка которому учите.
    Правильный ответ на заданный вопрос, в рамках кодовой базы ангуляр на 15.07.2020 --
    *это два идентичных сорта говна*
    Потому что единственная разница которая сейчас есть, заключается в том, кто инициирует процесс навешивания обработчика на элемент.
    В случае атрибута onclick - инициирует браузер в фазе рендера т.е. еще до конца построения дом дерева,
    В случае атрибута ng-click инициирует код агуляр, со всеми прекрасными вытекающими из полного прохода по дому в поисках нужного атрибута.
    А итог идентичный - на элементе весит обработчик. То есть оба вешают один хандлер на элемент.
    Единственная что следует упомянуть - ангуляр вешает вместо оригинального обработчика из атрибута, свой собственный, который в последействии и вызывает оригинальный обработчик. Что в случае нашего вопроса совершенно без разницы, поскольку к каждому элементу он благополучно будет присобачен.
    Итогом этого мракобесия является пламенный превед разработчикам ангуляра с бессрочным абонементом в биореактор.
    И если людей придумавших onlcick можно понять, они это делали черти когда, когда никакого опыта в этом ни у кого не было, то господ из ангуляра очистить может только ритуальное пламя.

  • @newyork4er
    @newyork4er 6 років тому

    Только не УЛ, а Ю-ЭЛ и не ЛИ, а ЭЛ-АЙ

    • @evgeniy1737
      @evgeniy1737 5 років тому

      Руся, не мочи) Он такой материал разжевал, а ты к таким мелочам.

  • @oleg_kholin
    @oleg_kholin 2 роки тому

    Безусловно интересный докладчик и важный материал. Но как же достали эти музыкальные вставки! Отписываюсь!

  • @user-pp2jt2vq7p
    @user-pp2jt2vq7p 3 роки тому

    Тебя слышно хуже чем орущую музыку.

  • @anonimusculture9378
    @anonimusculture9378 2 роки тому

    музыка неприятная! на фоне музыки ктото чтото говорит (поет) и это раздражает ужасно, я постоянно отвлекаюсь кто разговаривает!? в наушниках очень хорошо слышно. диз

    • @HillelITSchool
      @HillelITSchool  2 роки тому +1

      Спасибо за замечание, работаем над звуком

  • @aammssaamm
    @aammssaamm 4 роки тому

    Шизофреник.