Curso JavaScript: 76. DOM: Delegación de Eventos -

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 251

  • @leonic000
    @leonic000 Рік тому +17

    Dos años despues de terminar el curso y habiendo conseguido trabajo gracias a vos, vuelvo aquí porque seguís siendo mi primer referencia para las dudas de JS

  • @joelleiva6952
    @joelleiva6952 2 роки тому +24

    Esta clase fue una de las mejores que llevamos del DOM, aparte de que ahorramos recursos, ahorramos mucho codigo y, personalmente, es mucho mas comoda y legible.
    Ahora a seguir con el BOM!!
    Dejo mis apuntes:
    //*👉 La delegacion de los eventos no consiste en otra cosa que, por ejemplo cuando yo tengo 1000 divs no seria optimo agregarle el listener a cada vez, de igual manera no es optimo aunque lo hagamos con un ciclo como el forEach. Ya que estaria generando un listener a cada elemento, cuando yo podria tener el evento asignado a un elemento padre superior y a partir de ahi, buscando con un selector quien origino el evento, desencadenar la programacion que quiera al momento del evento
    //*?💬 Imaginense que en un formulario que tenga 30 inputs y cada uno tenga validaciones. En vez de trabajar el evento onchange de cada input o el evento onblur, o el onfocus, el evento en cuestion se lo asignemos, en lugar de a esos 30 inputs, al formulario como tal. Incluso se podria asignar al documento raiz, que en este caso es el document.
    //*🦊✅ Y el profe Jon aplico esta ultima forma cuando hace proyectos con vanilla JS al momento de ESQUEMAR el modelo de sus EVENTOS. Jon genera un listener 🌎GLOBAL para el DOCUMENT, es decir si tiene que activar con click, con el input submit, blur o todos los eventos asignados, se los pega al document y a partir de ahi DETECTA cual es el nodo que le INTERSA QUE ACTIVE EL EVENTO y DESENCADENA la programacion requerida. De tal menera que en lugar de tener 1000 listeners generados por el evento click, tiene un SOLO LISTENER generado al DOCUMENT y detecta cual es el evento que va a desencadenar esa accion del usuario
    //!❕ Un detalle IMPORTANTE es que tambien vamos a EVITAR la PROPAGACION, entonces ya nosotros no tendriamos que estarla deteniendo, porque como el evento esta asignado al document ya NO necesitamos el trabajo que hace la mimsa
    const $divsEventos = document.querySelectorAll(".eventos-flujo div"),
    $linkEventos = document.querySelector(".eventos-flujo a");

    function flujoEventos(e) {
    console.log(
    `Hola te saluda ${this}, el click lo originó ${e.target.className}`
    );
    }
    document.addEventListener("click", e => {
    console.log("Click en",e.target)
    if(e.target.matches(".eventos-flujo div")) {
    flujoEventos(e)
    }
    if(e.target.matches(".eventos-flujo a")) {
    alert("Hola soy tu amigo y docente digital... Jonathan MirCha")
    e.preventDefault()
    }
    })
    //?🤔 Por que cuando nos referimos al this del evento que le asignamos al document nos aparece window? Porque se lo asignamos al document y en ese momento se esta refiriendo al objeto global, devuelve window ya que document cuelga de window y al estar colgada no hace falta aclararlo
    //*✅✅ Con esta delegacion de eventos le ahorramos muchos recursos al navegador y mejoramos el rendimiento de nuestro programa, ya que en vez de agregarle un listener a cada elemento, asignamos uno por cada tipo de evento que queramos ejecutar

  • @leomax522
    @leomax522 Рік тому +1

    Jon, excelente explicación. La verdad que nos haz dado una herramienta increíble para optimizar recursos. Tus cursos son lo mejor de lo que he visto en las redes. Muchas gracias por todo.

  • @lucasdellamaggiore2544
    @lucasdellamaggiore2544 3 роки тому +10

    Realmente Jon eres una persona que creía que no existía, el contenido de este curso es excelente y lo mas importante, no lo encontras en otro lado sin tener que pagar precios inaccesibles, trato de difundir el curso por todos lados, porque me cuesta entender como no tienes millones de seguidores.
    Te agradezco por tu contenido, por tu esfuerzo, dedicación y por la paciencia en explicar para que no se te olvide ningun detalle. Eres realmente un genio

  • @angelmgl8137
    @angelmgl8137 3 роки тому +29

    Qué clase maestra diste en este video, es contenido único en youtube. Me alegra la manera en la que compartes tu conocimiento fruto de tu experiencia con todos nosotros. Si pudiera le daría 100 likes al video, quiero que sepas que comparto tus videos con mi clase completa, así que todos mis compañeros están enterados y más de uno está siguiendo este curso. Saludos!

  • @Ni_idea_de_tecnologia
    @Ni_idea_de_tecnologia Рік тому +1

    Con que facilidad se entienden las cosas y como la mente empieza a trabajar para futuros proyectos. Gracias Sr. Mircha

  • @estebangabrielgarciasanche9774
    @estebangabrielgarciasanche9774 3 роки тому +18

    Se acabó colocar addeventlistener a todo... Solo al document y de allí puro if... Gracias Jon por compartir tan buen contenido!

  • @PalestinianCode
    @PalestinianCode 3 роки тому +5

    Mil gracias Jonathan, eres de los pocos que han mencionado este tema, las buenas prácticas las estoy aprendiendo de ti y de Dorian desings.
    Porcierto veros a ti y a dorian en un directo, seria una bomba atómica de información.
    Amino hermano, saludos desde África del Norte

  • @Karen-fy7mq
    @Karen-fy7mq 2 роки тому +1

    Muy bueno, con estas explicaciones ahora lo veo todo tan fácil y tan lógico

  • @deyvi-kantuta
    @deyvi-kantuta Рік тому +1

    Que bendición esta en información Muchas Gracias YON.......

  • @josefabianbeltranmeza6914
    @josefabianbeltranmeza6914 3 роки тому +8

    ¡ Esto es Simplemente una clase que vale ORO !. Nuevamente, Gracias Jon.

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

    Querido Jon. Desde Argentina te digo MARADONIANA clase !!!!! y MARADONIANO curso

  • @RobertCastilloC
    @RobertCastilloC 3 роки тому +3

    Maravilloso resume mucho el código

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

    Hola Jon, muchas gracias; no sabia que fuera posible aplicar esta técnica, ésta clase me ha sido de gran ayuda; gran trabajo colega.

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

    Delegación eventos es lo mejor que tiene JavaScript te soluciona muchas cosas y te permite hacer más cosas de igual manera 🙌🙌

  • @karenlorenacaicedo7718
    @karenlorenacaicedo7718 Рік тому +1

    Excelente Profe, Gracias Infinitas.

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

    🧙‍♂Muchas gracias,muy buen curso!!!

  • @hernansanabria9685
    @hernansanabria9685 Рік тому +1

    sept 11 1969**Nov 16 2023
    gracias excelente curso
    felicidades John Mircha

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

      Gracias, saludos👋🏻😉

  • @DiegoGutierrez-gu5ui
    @DiegoGutierrez-gu5ui 2 роки тому +1

    Excelente clase Jon, trucos que se aprenden....

  • @gukoggb
    @gukoggb 3 роки тому +1

    Justo lo que necesitaba. Muchísimas gracias

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

    Es de Ley! antes de ver el vídeo debe de tener su buen like... 💪💪

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

    Clase Top Tier! Es un muy buen tip el que das en este video =D

  • @nihil_um
    @nihil_um 4 роки тому +8

    Muy bueno el enfoque. No lo conocía y ahora comprendo cosas que antes se me escapaban. Muchas gracias...

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

      De nada, comparte para llegar a más gente

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

      @@jonmircha Me encuentro con un problema cuando la estructura html cuenta con muchos elementos hijo, nieto, bisnieto, etc porque en ese caso no me los detecta todos y tengo que estar jugando con la propiedad css pointer-events para que no detecte los que no me interesa...
      Por ejemplo, yo quiero que me detecte el hijo y solo me detecta el elemento más profundo, entonces le aplico la propiedad pointer-events: none; a ese elemento para que no me lo detecte.
      www.screenpresso.com/=G6Xgd
      En esta captura, me detecta antes el último span (.et-pb-icon) que el elemento que yo quiero que detecte (.about__tabs__item, que ni siquiera lo detecta)
      No sé si existe otra forma de hacerlo más efectiva y mejor, claro.

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

    Gran clase, Jon! Muchas gracias!

  • @johnherrera5913
    @johnherrera5913 3 роки тому +1

    Master! Buenísimo el curso,Muchísimas graciass

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

    Impresionante clase Jon. No se para de aprender contigo. No me cansaré nunca de agradecerte por todo el conocimiento que pones al alcance de todos de forma gratuita. Saludos Jon.

  • @EloyColirio
    @EloyColirio Рік тому +2

    De las mejores lecciones del curso y pocos llegan hasta acá, puro oro ❤

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

    Gracias otra vez!!. Para mi el mejor curso de JavaScript de los que intentado hacer, el resto los dejé porque me quedaban muchas dudas.

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

    sigo a muchos profesores y youtubers, aprendo muchísimo de varios, pero Jon, tu definitivamente eres excelente! Apenas pueda voy a suscribirme a alguna de tu membresías, te mereces éso y mucho más!

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

      (ojalá tuvieras algún método de pago disponible para Argentina, MP, Payoneer, Cafecito o algo así, lamentablemente paypal se me hace imposible actualmente)

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

      😉👋🏻

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

    Me alegra que enseñes todo pero que al final recomiendes las buenas practicas. Gracias!

  • @kevinayerdi
    @kevinayerdi Рік тому +1

    Hermosa clase!🤠

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

    Excelente el tema de Delegación de Eventos. Gracias Jon!!

  • @JB-pl8vj
    @JB-pl8vj 4 роки тому +2

    Excelente! Gracias Jon, tremendo el curso, fascinado

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

      De nada, comparte para llegar a más gente

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

    UFFF quede encantado con la clase, muy útil y sobre todo aplicando la experiencia que tiene usted profesor....

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

    Te admiro mucho Jon! Gracias por tan valioso material. :)

  • @ronaldm.r
    @ronaldm.r 4 роки тому +2

    La funcion flujoEventos la pude hacer trabajar dentro del ambito de los div utilizando las call, apply, bind todo está relacionado con lo anteriormente dado, muy bueno!

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

      Excelente observación, me dio mucha curiosidad cómo y me costo mucho pero lo pude hacer también jejeje

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

      puedes compartirlo. me llama la atención eso... Saludos

  • @oscarcordova9292
    @oscarcordova9292 3 роки тому +1

    ufff buenísimo Jonatan nunca me paso por la mente poner un addEventListener al document y controlar todos los eventos con target.matches eres un crack!!

  • @Verax__
    @Verax__ 3 роки тому +1

    Una clase magistral, como siempre.

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

    el mejor curso de javascript, se aprende mucho con cada clase

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

    excelente vídeo Jon. Muchas Gracias!

  • @marcosdanielromerogarcia-fx1kf

    Es encreible como puedes aprender todo con respecto a los evetos y una vez aprendidos nos muestres que hay una manera mas sencilla, no solo vas al punto sino te explayas y podemos conocer mas cosas, gracias por tanto♥.
    Justamente conseguire unas practicas como programador y cuando me paguen te donare un taquito :D

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

    Eres un superhéroe para muchos

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

    🥳🥳🥳🥳🥳🥳🥳🥳excelentisima clase maestro

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

    Tremendo truco para aplicar eventos 😁Un saludo Jon Eres un gran maestro

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

    Justamente estoy trabajando en un proyecto donde debo de "escuchar" acciones de varios elementos, aunque llegué a mejorar el código. Con ésta forma creo que me va a quedar incluso más fácil de organizar todo... Gracias profe!

  • @EdisonRivas2011
    @EdisonRivas2011 Місяць тому +1

    Muy buena explicación, like y 1 suscriptor +

    • @jonmircha
      @jonmircha  Місяць тому

      ¡Muchas gracias! 👋🏻😉

  • @terras06233
    @terras06233 3 роки тому +1

    Excelente video!

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

    Genial!!!! muchisimas gracias Jonathan!!! Vale mucho todo lo que nos explicas.

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

    Mi pc agradecerá el ahorro de memoria que aplicaré a partir de ahora gracias a este truco, muchas gracias de parte mia y de mi pc 😁😁

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

    gracias excelente video

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

    Muy bueno, da mucho valor agregado este video. Gracias por compartir tu trabajo Jon!

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

    Muchas gracias Jon ❤

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

    Que gran forma de hacerlo busque y busque como acceder a los elementos de una Tabla, en todos lados dicen que hay que ponerle eventos a cada celda o fila, con este método y .closets puedo obtener la td a la que se le da click y todo el tr al que pertenece. Gracias por compartir tus conocimientos y saludos desde Tampico, Tam.

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

    Wao esto me va a servir mucho para factorizar el codigo ya que tengo un centenar de event listener

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

    Que buen contenido Jon, eres y seras un grande por compartir este valioso conocimiento, de lo mejor en youtube la vdd

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

      Muchas gracias!👍🏻

  • @matiasgomez9416
    @matiasgomez9416 4 роки тому +14

    // 76. DOM: Delegación de Eventos
    function flujoEventos(e) {
    console.log(`Hola te saluda ${this}, el click lo originó ${e.target.className}`);
    e.stopPropagation();
    }
    // En lugar de haber tenido 4 listeners, solamente tengo la asignación de un "listener" al evento click del nodo principal "document". Con esta técnica a parte de mejorar el rendimiento solamente estamos teniendo una sola asignación al evento "click". A través del condicional "if" evaluamos los eventos.
    document.addEventListener("click", (e) => {
    console.log("Click en", e.target);
    if (e.target.matches(".eventos-flujo div")) {
    flujoEventos(e);
    }
    if (e.target.matches(".eventos-flujo a")) {
    alert("Hola soy tu amigo y docente digital... Jonathan MirCha");
    e.preventDefault();
    }
    });

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

    Buenísimo este vídeo. Un millón de gracias!!

  • @JavierGonzalez-oi1fv
    @JavierGonzalez-oi1fv 3 роки тому

    Excelente jon. Gracias...

  • @juantuvieja4110
    @juantuvieja4110 3 роки тому +1

    Gracias crack!

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

    Sólo puedo decir excelente

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

    Tu explicando delegación de eventos, y yo viendo una oportunidad de revisar código de paginas web para aprender un poco mas solamente dando click jajajaj.
    Jon de verdad que tus clases son geniales, y los comentarios de tus alumnos digitales motivan cada día más a seguir aprendiendo de tu mano....Bendiciones🧙‍♂️🧙‍♂️🧙‍♂️

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

      Gracias por tus bendiciones 😉🙌🏻

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

    Like 1500 xd
    la mejor clase de todas en esta sección

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

    le había dado poca importancia a este vídeo antes, pero es fundamental

  • @Alex-ny5yl
    @Alex-ny5yl 2 роки тому

    GRACIAS

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

    jon eres lo maximo, ;)

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

    Así le puedo quitar el evento por defecto a todos los " a ", esto es muy útil, muchas gracias

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

    un crack jon mircha

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

    Ingeniero Jonathan, me gustaría saber ¿Cómo se haría en el caso de que fuesen demasiados elementos a los que asignar eventos? ¿Podría ser asignándole los nombres de los elementos a un arreglo ? Pero entonces ¿cómo se le asignarían los if de cada elemento? ¿Se podría crear un módulo aparte con el arreglo para eso? O ¿cómo sería?

  • @synap6717
    @synap6717 Рік тому +1

    Otra forma de agregar los eventos a los elementos generados dinamicamente con base en datos obtenidos con la api fetch ó ajax es generar los respectivos addEventListeners en una Template String y ejecutar ese código con la función eval, luego de generar los elementos dinamicamente. Aunque me parece mas optimo como lo presenta en este video.

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

      Sí no es muy segura esa opción 👋🏻😉

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

    Vaya muy bueno.

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

    hola Jon, no se si tienes un video donde se explica la diferencia y casos de uso entre las propiedades target y currenTarget, dentro la delegacion de eventos . Saludos...

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

    buen video Profe cual es el video que menciona en el minuto 15:21 donde habla de aplicar delegacion a elementos que vienen dinamicos ?

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

      Son los cvideos de la sección de AJAX

  • @maximilianoromero8008
    @maximilianoromero8008 Рік тому +1

    Hola jon, en el minuto 12:36 se imprime [object Window] porque al usar la función flecha en el eventListener, "this" pasa a hacer referencia al elemento padre de document (= Window) ??

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

    en ves de usar matches tambien se puede usar className para comprobar si la clase existe o classList.containst('clase') para comprobar si la clase tambien existe , cieerto?? o en todo caso si coincide hasta con su id , event.target.id == 'idElement'

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

      La ventaja de matches es que puedes validar cualquier selector

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

      @@jonmircha acabo de hacer el ejercicio de el menu hamburgesa de la clase 81 y no me funcionó con nunguna de las opciones que di acá pero con matches si funcionó , por que será ? que raro

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

    👏👏👏

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

    Disculpa, jon. Una pregunta ¿Es recomendable usar sentencias return al final de cada if en la delegación de eventos?

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

    Muy buen video Profe!! , solo una pregunta , cuando dijiste el ejemplo de peticiones con ajax , se podria usar las promesas para agregar un evento de forma asincrona , osea agregarle el evento con promesas cuando ya el contenido html este cargado?

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

      Sí se podría pero mejor usa la delegación

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

    Jon, me quedó solo una duda. ¿Al trabajar los eventos de esta manera, hay que usar solo los selectores del tipo class?
    Ya que los id no es conveniente que se repitan y usar solo selectores de etiquetas nos harían perder el control si nuestro código crece y esas etiquetas se repiten.
    EDIT: Acabo de leer "Las clases permiten a CSS y Javascript seleccionar y acceder a elementos específicos a través de los selectores de clase..."
    Pensaba que las clases eran exclusivas, o una buena práctica, solo usarlas con CSS :D

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

      Puedes usar cualquier tipo de selector

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

    Buenas tardes profe! Quisiera hacerle unas preguntas.
    Averiguando un poco encontré sobre la existencia de motores de plantillas como "Handlebars" y Frameworks como "Angular"
    ¿Con que es mas recomendable trabajar (ya sea por comodidad o tiempo) JavaScript Vanilla; JavaScript con Motor de Plantilla o con un Framework como Angular? ¿Y porque?
    Aun soy nuevo en todo esto, por eso le pregunto a usted que sabe mucho mas y quizás pueda guiarme un poco.
    Desde ya, muchísimas gracias y disculpe por las molestias

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

      Depende de la complejidad, del proyecto, pero lo que si es importante es que antes de trabajar con un framework como Anguar, React o Vue, domines JS

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

    Maestro Jon lo de la delegación de eventos al DOM y se ejecute en elementos de una api que todavia no ha cargado, se puede solucionar los errores de consola metiendo todas las acciones dentro de un evento padre por asi decirlo que tenga un condicional que verifique primero si los eventos de la Api ya cargaron?

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

      Sí, así se solucionan ese tipo de errores

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

    Profe una consulta, ¿si quiero un elemento div en específico y no precisamente cualquier div que exista? He estado intentando pero no me ha quedado. Y ya preferí mejor preguntar.
    Digamos el div en la posición 2.
    O si tenemos 10 figure, no quiero que aplique a cada figure, sino solamente a la 5 por ejemplo.

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

      Ponle una clase o id y así lo detectas

  • @GerentedeSistemas
    @GerentedeSistemas 3 роки тому +1

    Muy buena clase, no entiendo los 3 dislike, serán la competencia?

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

    Prof repasando conceptos, pienso pasar una app que hice en react a vanilla js, su filosofía de que mientras se pueda es mejor vanilla js prurito... La estoy practicando.. Nuevamente gracias por tanto Jon!!

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

    Buenas tardes. Profesor, por que dentro del oyente document que llama a la función addEventListener(), no funciona el llamado del método call(), que haga la función llamada para desarrollar las acciones del evento en cuyo interior usa “this”? Cuando llamo el metodo call(), le paso por parámetro el objeto {
    if(e.target.matches('.eventos-flujo div')){
    flujoEventos.call($divsEventos, e)
    }
    })
    Considerando que la función que desarrolla las acciones del evento es esta:
    function flujoEventos (e){
    console.log(`Hola te saluda ${this.className},
    el click lo originó ${e.target.className}`)
    }

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

      Usa una function normal en vez de arrow ;)

  • @matiasromera330
    @matiasromera330 3 роки тому +1

    Hola Jon! a ver si entendi bien, cuando usamos this en una función declarada, ese this hace referencia al scope superior al ámbito en el cual se declara, por lo que windows que está por encima de document es al que se le hace referencia, es así?

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

      sí Window es el padre de todo es el Zeus del navegador Web

    • @jonmircha
      @jonmircha  3 роки тому +2

      🤪🤭🤣🤣

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

    12:58 que es lo que presionas para deshacer el código así de rápido?

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

      Nada, es el autocompletado de VSCode, cundo se te quita lo puedes activar con ctrl + barra espaciadora, pero sale por sí sólo

  • @easyalfredo3666
    @easyalfredo3666 3 роки тому +1

    Hola Jon espero estés bien, tengo una duda !. Entonces se aplicaria la delegacion de eventos siempre que se pueda incluyendo en aplicaciones pequeñas o solamente cuando sean aplicaciones grandes que requieren mas demanda de recursos e interaccion con el DOM ?, nuevamente te doy gracias por estos cursos Jon !

    • @jonmircha
      @jonmircha  3 роки тому +2

      Puedes usarla en ambos casos ;)

  • @developer1328
    @developer1328 3 роки тому +1

    Hola Jon, tendremos un listener por cada evento que vayamos a usar?

    • @jonmircha
      @jonmircha  3 роки тому +1

      Sí, por ello la importancia del tema de la delegación de eventos que vemos en este video ;) en vez de tener n... listener, tenemos uno y lo activamos depende del selector que nnecesitemos

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

    Hola! con un listener para el document, no hay necesidad de utilizar el 'removeEventListener' para liberar la memoria en algún momento?

  • @alexanderg3764
    @alexanderg3764 3 роки тому +1

    Me quedó una duda del video, ¿al manejar de esta manera los eventos no hay que evitar que cada que un usuario haga "click" en una parte del documento se ejecute un "addEventListener"? (cuando daba click en el body activaba un "addEventListener"), ¿eso no afecta el rendimiento?

    • @jonmircha
      @jonmircha  3 роки тому +1

      para eso es el e.target.matches() para accionar el evento sólo con los elementos requeridos

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

      @@jonmircha Gracias profe, me despiste con eso :)

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

    Saludos.
    Es mas optimo asignar siempre el addEventListener al body, o es preferible hacerlo a un elemento superior que contenga los elementos hijos que deberían disparar ese evento???

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

      Es igual, mientras exista el elemento en el momento que carga el DOM, puedes usar cualquier elemento padre, pero yo prefiero hacerlo al document :) con eso me evito la falla, ya que es el objeto padre del dom

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

      @@jonmircha saludos jon gracias por ti respuesta.. lo tendré en cuenta.. ahora te pregunto, solo usas la delegacion de eventos cuando tienes que asignar el evento a muchos elementos o lo usan en cualquier caso? Aun cuando sean poco o un solo elemento?

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

      De preferencia siempre la uso

  • @emmanuelyapura8499
    @emmanuelyapura8499 3 роки тому +1

    Buenas! Tengo una duda que me esta matando, espero puedas verla y aclararme mas del tema jajaja. Mi pregunta es si puedo activar la propagación de eventos cuando utilizo document.addEventListener... Por si no me expliqué bien quiero decir: creo varios div de manera dinámica y quiero que al seleccionar uno me muestre los div que le siguen hasta llegar al div padre y realizar una acción con ellos (teniendo en cuenta que estoy haciendo click en el documento). Desde ya muchas gracias! Buen video, solo quede con esa pequeña duda. Un genio profe

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

      Sí claro, justamente para eso es la delegación de eventos

  • @matiasmarcelocentorbi7659
    @matiasmarcelocentorbi7659 3 роки тому +1

    Hola jon, cual es la diferencia entre classList.constains("") y matches(""), los dos validas a true no?

    • @jonmircha
      @jonmircha  3 роки тому +1

      contain sólo evalua si existe una clase, matches evalua cualquier selector valido de CSS

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

    con el evento submit seria igual o cambia en algo?

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

      con todos los eventos la delegación es igual

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

      @@jonmircha Ya pude hacerlo, no podia por que me faltaba poner como parametro el evento, gracias jon!!!

  • @josefranciscodelarosaibarr6477
    @josefranciscodelarosaibarr6477 3 роки тому +1

    Maestro MirCha, quiero detectar cuando el visitante quiera salir de la página para lanzar un modal con una encuesta sobre la experiencia al visitar el sitio. He intentado con window.addEventListener("beforeUnload", function(){…}) pero no logro el comportamiento deseado. Por favor podrías orientarme sobre cuál evento y cuál elemento enfocarme. Agradezco de antemano tu atención.

    • @jonmircha
      @jonmircha  3 роки тому +2

      Cerrando la ventana o pestaña lo veo muy dificil de controlar, pero quiza cuando el usuario cambie la url de la barra de direcciones puedas hacerlo

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

      @@jonmircha muchísimas gracias. Entones intentaré con el cambio de URL. Gracias por la pronta respuesta, que pases un excelente día. Saludos!!

  • @jmont4349
    @jmont4349 3 роки тому +1

    Lo bueno: clase épica, lo malo: reestructurar el proyecto que acabo de comenzar u.u

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

    13:19 Pero no se supone que document es un objeto aparte, y es hijo de window? Por qué el this hace referencia a window si se llama a flujoEventos desde document?

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

    👏👏👏 🙏🙏🙏

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

    moooy bueno

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

    Profe, nos explica que no se le puede asignar un evento a un elemento que todavía no existe (un elemento que luego crearemos dinámicamente); ¿pero si le asignamos el evento luego de crear dicho elemento?, ¿o todos los Listener se ejecutan al cargar el documento?

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

      es preferible que se carguen a a carga de dom para ello el uso de la delegación de eventos