Event Delegation in Javascript | UI/Frontend Interview Question

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.ย. 2024
  • - What is Event Delegation?
    - A quick demo and examples of this techniques
    - Benefits of Event Delegation?
    - Limitations of Event Delegation?
    Link to code of Example 1 - codepen.io/aks...
    Link to code of Example 2 - codepen.io/aks...
    If you get to learn something from this video then do give it a thumbs up and subscribe to my channel for more such videos.
    If you want me to cover any specific topic, then comment down below. I would be happy to help you.
    If you find my videos helpful,
    then please support this channel by buying a coffee,
    www.buymeacoff...
    Cheers,
    Akshay Saini
    akshaysaini.in
    Would love to Stay Connected with you ❤️
    LinkedIn - / akshaymarch7
    Instagram - / akshaymarch7
    Twitter - / akshaymarch7
    Facebook - / akshaymarch7
    #Javascript #JavascriptInterviewQuestions #AkshaySaini

ความคิดเห็น • 158

  • @Abhishek-dp5tc
    @Abhishek-dp5tc 2 ปีที่แล้ว +86

    Benefits of event delegation:
    1) improves memory space
    2) mitigates risk of performance bottle neck
    3) Dom manipulation
    4) when elements get added dynamically, the process of adding events is slow
    Limitations:
    1) All the events are not bubbled up, some events like blur, focus are not bubbled up
    2) if e.stopPropogation is used in child, then events are not bubbled up

  • @cnsnmms3708
    @cnsnmms3708 3 ปีที่แล้ว +56

    Eventually found someone who really knows something and shares it on youtube :D

  • @shadestorm3995
    @shadestorm3995 3 ปีที่แล้ว +33

    I have been adding listeners on loop like an idiot when I could have just done this...
    This was enlightening to a great degree.

    • @mridulkumar4087
      @mridulkumar4087 3 ปีที่แล้ว +3

      Your are even adding a loop but I have been adding a event listener each and every time for every element

    • @jamesonvincent3779
      @jamesonvincent3779 3 ปีที่แล้ว

      i know im randomly asking but does someone know of a trick to log back into an instagram account?
      I stupidly forgot my password. I would appreciate any tricks you can give me!

  • @BaishaliGhosh13
    @BaishaliGhosh13 4 ปีที่แล้ว +12

    I have been terrified of frontend questions in fullstack positions but your videos have given me so much clarity and insight into the working of JS. Thanks a lot Akshay.

  • @user-uh3zr7mo4i
    @user-uh3zr7mo4i 4 ปีที่แล้ว +10

    Dude! I love you . These videos are really helpful for self taught devs.

  • @hardikluhar4738
    @hardikluhar4738 3 ปีที่แล้ว +3

    These videos are really helpful for self-taught devs.

  • @shishirsonekar5661
    @shishirsonekar5661 4 ปีที่แล้ว +6

    Thanks, Akshay for this perfect explanation...
    Also,
    Being a full-stack developer and like me, a lot many FS devs keep ignoring CSS because it needs a proper understanding of not just the target element as well as the effects passed on from parents in the hierarchy. Overall, CSS being a secondary skill for this reason as well, it's not focused much in tech Interviews. But, I feel it is much-required skills to deliver a quality products. If you've cracked CSS properties' relations with its parents in the hierarchy, I'm sure huge junta including me would like to learn it from you!...

  • @sowmithreddy18
    @sowmithreddy18 4 ปีที่แล้ว +15

    Never knew data attributes could be used this way. Amazing !

  • @saritajha1
    @saritajha1 3 ปีที่แล้ว +4

    You are absolutely right !! it opened my eyes when I actually understood this concept :)
    No tutorial/ video ever explained delegation this way. Can't thank more Akshay.
    God bless you.

  • @priyaranjan1733
    @priyaranjan1733 5 ปีที่แล้ว +1

    In CSS, we use as event delegation mean, we assign our base tag's href for all tags in that page. This is just analogy for those who know but not Event Delegation. 😕

  • @utpalclicks
    @utpalclicks 4 ปีที่แล้ว +10

    And for the last example, we can merge it with "denounce" so that the event only triggers once the user stop typing... 😀
    You explained this very well... Thanks!!

    • @aadispare3673
      @aadispare3673 ปีที่แล้ว +1

      Nope. Debounce on input field validation is a very bad idea.
      You need to notify the user as soon as he types something against the rules, instead of letting him know after he's finished typing a long sequence of mistakes. That is bad user experience.

  • @ShouvikMitraPlus
    @ShouvikMitraPlus 5 ปีที่แล้ว +35

    Nice one! also got to know how frameworks make use of custom attributes like data-dismiss="modal" in bootstrap. Thanks!

    • @akshaymarch7
      @akshaymarch7  5 ปีที่แล้ว +51

      You're absolutely right Souvik and the people who write frameworks are just like us, it's just that they understand these core concepts very well and how things work under the hood. Keep on learning these basic concepts and slowly everything will make sense and you will get a lot more wow moments. :)

    • @Abhishek-do8mp
      @Abhishek-do8mp 2 ปีที่แล้ว +1

      @@akshaymarch7 ab to aajao sir

  • @vandanachintala8326
    @vandanachintala8326 4 ปีที่แล้ว +3

    Thanks Akshay for awesome explanation of each topic. I have gone through your event bubbling and capturing video before this one. I think your first example regarding categories is the best example of enabling event capturing. Since we are attaching event handlers to parent - instead of events bubbling from child to parent, we can enable useCapture property and can stop delegation to child elements for better performance using e.stopPropagation().

    • @kirankamath5891
      @kirankamath5891 3 ปีที่แล้ว

      but how we will understand from where the event actually occurred if the target is the child element

  • @rameshbankuru421
    @rameshbankuru421 4 ปีที่แล้ว +8

    Akshay Saini, Dude! I love you. These videos are really helpful for me

  • @subhamshaw1726
    @subhamshaw1726 2 ปีที่แล้ว

    after namaste javascript, this frontend interview question playlist had helped me a lot. I can apply this things in my work as well as ace my interviews.
    All thanks to YOU, sir

  • @onlynaveen
    @onlynaveen 4 ปีที่แล้ว +2

    Hi sir, after 1 year learning you lesson me a practical and real things, Thanks for advise and teach.

  • @ryansantiago3684
    @ryansantiago3684 ปีที่แล้ว +1

    No joke, you are the best person when it comes to explaining. I really recommend you Akshay! Keep it up!

  • @lovishgoel2745
    @lovishgoel2745 3 ปีที่แล้ว +1

    best series so far

  • @prabu2778
    @prabu2778 4 ปีที่แล้ว +1

    You are great !!!!!!?
    Helping so many poor people

  • @iqrarhussain7136
    @iqrarhussain7136 3 หลายเดือนก่อน

    Very beautiful concept, and beautifully taught by Akshay sir.

  • @shoaib_akhtar_1729
    @shoaib_akhtar_1729 2 หลายเดือนก่อน

    Hats off, awesome teaching skills.

  • @gyanendraverma3155
    @gyanendraverma3155 3 ปีที่แล้ว

    best javascript knowledge. I was looking at this kind of depth of knowledge in javascript.

  • @md.mohiulislam6516
    @md.mohiulislam6516 ปีที่แล้ว

    This guy is awesome. Love from Bangladesh.

  • @charanckck
    @charanckck 3 ปีที่แล้ว

    Love you man. Thanks for your time and knowledge.

  • @codingwithgraceandtruth2456
    @codingwithgraceandtruth2456 2 ปีที่แล้ว

    hooked to your tutorials, really good quality in teaching and content.

  • @samdatta9163
    @samdatta9163 4 ปีที่แล้ว +1

    Good Quality and informative video.I kept all the concepts in my mind for interview.Thanks so much.

  • @tusharkrishna8149
    @tusharkrishna8149 4 ปีที่แล้ว +1

    Your explanation is too good, can you make a video on java script timers please

  • @MrMaulikthaker
    @MrMaulikthaker 3 ปีที่แล้ว

    second example when you type anything then that much time function is called. So I think its the case of function re-calling wihile each character we typed in event delegation.

  • @ishusharma415
    @ishusharma415 3 ปีที่แล้ว

    Really useful information and very well explained lectures. One of the best channel to prepare for front end interviews. Thank you so much for creating this channel.

  • @SAIRAM-ct5cy
    @SAIRAM-ct5cy 3 ปีที่แล้ว +1

    Good job Akshay..its amazing how you present the concepts precisely.Keep up the good work!!

  • @gokulsrinivasan8563
    @gokulsrinivasan8563 2 ปีที่แล้ว

    Akshay,Thank you so much these videos. You explanation is pretty clear. Thanks again.

  • @SauravKhare
    @SauravKhare 6 หลายเดือนก่อน

    Really useful examples.

  • @chamnil8666
    @chamnil8666 4 ปีที่แล้ว

    Thank you for making these free videos.They are so educational.keep up the good work.

  • @kiranmahajan778
    @kiranmahajan778 5 หลายเดือนก่อน

    In event delegation we would have to write a lot of if and else condition to handle different click events

  • @PeaceUrSoul
    @PeaceUrSoul 4 ปีที่แล้ว +1

    Hi Akshay, thanks for bringing such insights logics. Keep post such videos..

  • @AdnanAli-cp9hk
    @AdnanAli-cp9hk 3 หลายเดือนก่อน

    amazing amazing amazing!!!!

  • @VinayVerma22
    @VinayVerma22 5 ปีที่แล้ว +1

    Very nice and precise tutorial with great examples. Requesting you to make a video on "Event Loop". :)

  • @suthagarthambikannu6402
    @suthagarthambikannu6402 4 ปีที่แล้ว

    nice video and simple understandable English. Very useful for me

  • @mohann7750
    @mohann7750 4 ปีที่แล้ว

    Thanks Dude..Helped me to learn events in javascript in depth..

  • @snehashischattopadhyay9519
    @snehashischattopadhyay9519 4 ปีที่แล้ว

    bro learning a lot from your videos. Please please please upload more videos on Javascript. Also if possible discuss on tricky CSS, HTML questions.

  • @anandyadav_
    @anandyadav_ 3 ปีที่แล้ว

    older videos are one level good than newer ones😋

  • @navdeepsr93
    @navdeepsr93 4 ปีที่แล้ว +1

    Thanks Akshay , you explained very nicely . :)

  • @shivGGG
    @shivGGG 4 ปีที่แล้ว +1

    Amazing stuff, great way of teaching :)

  • @creativemind4116
    @creativemind4116 2 ปีที่แล้ว

    Thanks for your valuable explaination.
    now i'm bit confuse between event bubbling and event deligation.

  • @abhilayman8533
    @abhilayman8533 4 ปีที่แล้ว

    document.getElementById is faster than document.queryselector , so use the first one.

  • @dhrumit7
    @dhrumit7 2 ปีที่แล้ว

    @Akshay Saini
    Your videos are very insightful. Please do one video on Infinite Scroll and Pagination.

  • @manojkumarsaheng
    @manojkumarsaheng ปีที่แล้ว

    Thx more knowledge video but Request video Virtual DOM and Actual DOM

  • @himanshushekhar3694
    @himanshushekhar3694 3 ปีที่แล้ว

    such a nice video with great explaination...Thank you so much

  • @dinesh9896
    @dinesh9896 ปีที่แล้ว

    thank you brother for making it very clear!

  • @videosforinventionimaginat2410
    @videosforinventionimaginat2410 4 ปีที่แล้ว

    Sir very nice , video very simple, clear and directly getting into our head
    Sir also make real time video of securing API , and make webpage loading g faster in UI

  • @Siddarthathota
    @Siddarthathota 5 ปีที่แล้ว +1

    Awesome explanation man.. kudos

  • @pritamchowdhury4191
    @pritamchowdhury4191 4 ปีที่แล้ว +1

    It was just fantastic.Thank you so much brother

    • @pritamchowdhury4191
      @pritamchowdhury4191 4 ปีที่แล้ว

      can u make a video about how javascript engine works.thanks in advance

  • @sagarkumar4816
    @sagarkumar4816 3 ปีที่แล้ว

    awesome video .. very informative .. please make more videos

  • @TanayBhalani
    @TanayBhalani 3 ปีที่แล้ว

    Amazing video, learnt a lot✌️ thank you Akshay 👍

  • @hundredeyes7759
    @hundredeyes7759 5 ปีที่แล้ว +3

    Finally I got it!!. is this the same way how react-router work? i mean like not exactly the same but core concepts are this only right?

    • @akshaymarch7
      @akshaymarch7  5 ปีที่แล้ว +1

      I don't know exactly about it. React router is all together a giant concept, won't be this simple. But yeah this concept is often used for setting behaviour patters in the code :)

  • @priyankachhabria6769
    @priyankachhabria6769 2 ปีที่แล้ว

    This was amazing. Thanks for making it so simple.

  • @MujahidAli-gi6jk
    @MujahidAli-gi6jk 2 ปีที่แล้ว

    I just only sy kitna awesome parhata ha yar

  • @jayanthbabusomineni557
    @jayanthbabusomineni557 5 ปีที่แล้ว +1

    Please make video on closures in JavaScript

  • @samadhansalgar9181
    @samadhansalgar9181 3 ปีที่แล้ว

    !! Its so easy to learn from your @video Thanks lot for such great video !!! ,
    Please cover one fronted template with javscript, Jquery if possible with AJAX, animation
    or only with Javascript with animation

  • @iaindudman3349
    @iaindudman3349 2 ปีที่แล้ว

    Excellent examples and explinations👍

  • @sandeepadiyar001
    @sandeepadiyar001 4 ปีที่แล้ว

    Thanks very much akshay. Yours videos are very helpful and quite descriptive and understandable. Can you please make one video on webpage security. I mean from a frontend developer point of view how can I add security to a web app. Thanks in advance

  • @profjs2398
    @profjs2398 2 ปีที่แล้ว

    excellent video, thank you Akshay

  • @mohitkushwaha8156
    @mohitkushwaha8156 3 ปีที่แล้ว

    Video is very helpful
    grateful to you

  • @musicsubhankar
    @musicsubhankar 3 ปีที่แล้ว

    This was nicely explained. Keep up the good work. :)

  • @techbjunks
    @techbjunks 5 ปีที่แล้ว +1

    we can also do event delegation with capturing phase.

  • @Priyanka_12321
    @Priyanka_12321 8 หลายเดือนก่อน

    Thank you so much sir 😀🙏

  • @sumonbarai178
    @sumonbarai178 ปีที่แล้ว

    thanks for totorial.....

  • @namankeshari7332
    @namankeshari7332 ปีที่แล้ว

    Awesome video once again!

  • @jayanthbondi4251
    @jayanthbondi4251 2 ปีที่แล้ว

    Wonderful explanation !!

  • @MunshiWahid
    @MunshiWahid 3 ปีที่แล้ว

    This video should get more likes

  • @Rajavinoth1981
    @Rajavinoth1981 5 ปีที่แล้ว +1

    Super

  • @TheRichEng
    @TheRichEng 5 ปีที่แล้ว +1

    Awesome brother

  • @DharmendraKumar-qk5bt
    @DharmendraKumar-qk5bt 5 ปีที่แล้ว +1

    It's awesome. Thanks

  • @kalyanparri8517
    @kalyanparri8517 3 ปีที่แล้ว

    Thanks for information sharing

  • @12vvs
    @12vvs 4 ปีที่แล้ว +1

    Great!

  • @simranbhatia2402
    @simranbhatia2402 2 ปีที่แล้ว

    Superb

  • @sahilsatishkumar
    @sahilsatishkumar 4 ปีที่แล้ว +1

    So I am not the only person who is reminded of the time by them machines

  • @valurathod8579
    @valurathod8579 4 ปีที่แล้ว

    Dude your videos are awesome and useful.. Can you please make video on angular?

  • @vitalvisions4U
    @vitalvisions4U 3 ปีที่แล้ว

    Got this too.

  • @manishchandra8931
    @manishchandra8931 5 ปีที่แล้ว +2

    Awesome explanations of topic with elegant code examples. Can u plz cover throttling and debouncing too in your next video ?

    • @akshaymarch7
      @akshaymarch7  5 ปีที่แล้ว +1

      Hi Manish, I've already covered debouncing in a video. Please have a look at the playlist :)

  • @aburaihan-py4vi
    @aburaihan-py4vi 2 ปีที่แล้ว

    Excellent!

  • @anonymousshooter3636
    @anonymousshooter3636 4 ปีที่แล้ว

    Very Informational

  • @velmurugan.personel
    @velmurugan.personel 5 ปีที่แล้ว

    Awsome Akshay..... Make video on "Event Loop"

  • @somhrikkonar6147
    @somhrikkonar6147 2 ปีที่แล้ว

    Thanks

  • @karensanchez7308
    @karensanchez7308 4 ปีที่แล้ว

    Superb, thanks.

  • @SHIVAMPANDEYSJTG
    @SHIVAMPANDEYSJTG 2 ปีที่แล้ว

    You are awesome!

  • @bahaakrayem4104
    @bahaakrayem4104 5 ปีที่แล้ว +1

    Great

  • @AbhishekGupta-bg8wt
    @AbhishekGupta-bg8wt 4 ปีที่แล้ว

    please make more videos on these type of things

  • @shubamdadhwal3497
    @shubamdadhwal3497 2 ปีที่แล้ว

    Excellent Explanation Akshay, I have a minor doubt - as you have said it we can only do event delegation because of event bubbling, but while playing with the code, when i set the useCapture flag to true, it was working perfectly fine too, can you explain this behaviour?

  • @leolowe22
    @leolowe22 4 ปีที่แล้ว +2

    where does the bubbling stop up in the hierarchy?

  • @jaisaram5239
    @jaisaram5239 5 ปีที่แล้ว +1

    let's if we have list item with nested element. eg: item . then how we will figure out and get the id if user clicked on span or etc.

    • @snehashischattopadhyay9519
      @snehashischattopadhyay9519 4 ปีที่แล้ว

      You will get it through the event object. As discussed by Akshay, using event delegation attach a single event listener and the event object will contain the element id that is being clicked.

    • @harshithm1739
      @harshithm1739 2 ปีที่แล้ว

      @Jaisa Ram, you found any solution for this? I am stuck in the same situation

  • @senaitmekonnen692
    @senaitmekonnen692 3 ปีที่แล้ว

    thankyou

  • @sunilthind3257
    @sunilthind3257 2 ปีที่แล้ว

    @akshay
    Can you please show in a video how can we achieve event delegation in react components

  • @surabhipal9553
    @surabhipal9553 3 ปีที่แล้ว

    Thank you

  • @techguybiswa
    @techguybiswa 5 ปีที่แล้ว +1

    WOW So cool! Awesome explanations!

  • @nemilidinneanusha1747
    @nemilidinneanusha1747 2 ปีที่แล้ว

    Thanks!

    • @akshaymarch7
      @akshaymarch7  2 ปีที่แล้ว

      Thank you for supporting the channel. ❤️

  • @sanauwari
    @sanauwari 3 ปีที่แล้ว

    I m digging your videos 😁

    • @akshaymarch7
      @akshaymarch7  3 ปีที่แล้ว +2

      Jasoos 🕵️

    • @sanauwari
      @sanauwari 3 ปีที่แล้ว

      @@akshaymarch7 Finally got response from you😁
      Digging is in progress till find the gem of javascript.
      Thanku so much for you efforts 🙏

  • @ashwanipayal8658
    @ashwanipayal8658 3 ปีที่แล้ว

    Nice!

  • @aditisharma2552
    @aditisharma2552 3 ปีที่แล้ว

    This is fab