Meta tags:
description= JavaScript Event Delegation: Event Bubbling, event.target + closest()-Muster, data-*-Attribute und häufige Fallstricke verständlich erklärt.;
Headings (most frequently used words):
event, delegation, javascript, in, verwenden, und, wann, beispiel, einer, meistern, verstehen, praktische, beispiele, für, ein, robusteres, muster, closest, daten, mit, data, attributen, auslesen, fallstricke, besonderheiten, nicht, fazit, übungen, vorteile, von, funktionsweise, klick, events, auf, liste, behandeln, button, klicks, dynamischen, oberfläche, verwalten,
Text of the page (most frequently used words):
und (74), event (68), #delegation (31), der (28), events (27), element (26), sie (25), die (25), #button (24), das (23), ist (23), auf (22), dom (22), javascript (21), target (21), ein (20), api (19), listener (17), item (17), von (16), lernen (15), nicht (14), mit (13), data (13), this (13), für (12), dem (12), wird (12), html (11), closest (11), einem (11), verwenden (10), span (10), werden (10), document (10), eine (9), wenn (9), menu (9), action (9), web (8), muster (8), bubbling (8), elemente (8), handler (8), script (8), methoden (8), w3docs (7), click (7), den (7), tagname (7), function (7), alle (6), tools (6), bubblen (6), kann (6), jedem (6), kind (6), einen (6), einer (6), const (6), div (6), feedback (6), color (6), übungen (5), css (5), wann (5), fallstricke (5), daten (5), was (5), welche (5), nach (5), vorfahren (5), oder (5), warum (5), bei (5), elementen (5), dynamisch (5), klick (5), currenttarget (5), dieses (5), kopieren (5), getelementbyid (5), console (5), class (5), string (5), formatter (5), json (4), generator (4), beispiele (4), prüfen (4), focus (4), blur (4), elternelement (4), oben (4), des (4), elements (4), benutzer (4), prüfung (4), selbst (4), browser (4), binden (4), hinzugefügt (4), liste (4), container (4), objekt (4), addeventlistener (4), log (4), textcontent (4), and (4), the (4), buttoncontainer (4), eigenschaften (4), shadow (4), fetch (4), async (4), einführung (4), über (3), code (3), encoder (3), editor (3), probier (3), quizze (3), php (3), attributen (3), auslesen (3), praktische (3), verstehen (3), page (3), capturing (3), sodass (3), abfangen (3), übung (3), angeklickten (3), dann (3), als (3), technik (3), handling (3), besonders (3), inhalt (3), performance (3), verwalten (3), benutzerdefinierte (3), direkt (3), kein (3), viele (3), dass (3), stattdessen (3), diese (3), bubbled (3), actions (3), return (3), share (3), delete (3), save (3), angeklickt (3), ohne (3), contains (3), can (3), clicked (3), buttons (3), einziger (3), listenelement (3), zum (3), ausgelöst (3), sich (3), sind (3), behandelt (3), flag (3), objekte (3), promise (3), funktionen (3), operatoren (3), entwickler (2), italiano (2), português (2), español (2), français (2), русский (2), deutsch (2), english (2), beautifier (2), diff (2), password (2), python (2), java (2), git (2), bücher (2), snippets (2), fazit (2), besonderheiten (2), robusteres (2), meistern (2), standard (2), browseraktionen (2), keydown (2), mouseenter (2), mouseleave (2), einfache (2), funktioniert (2), nur (2), traversiert (2), nächsten (2), passenden (2), finden (2), auch (2), verschachteltes (2), innerhalb (2), anklickt (2), icon (2), zuverlässiger (2), screen (2), arten (2), website (2), erwähnt (2), nützlich (2), anwendungen (2), ihrer (2), verbessern (2), einfacher (2), auslösen (2), oft (2), aber (2), müssen (2), nein (2), focusout (2), focusin (2), ähnliche (2), stoppropagation (2), pfeilfunktion (2), daher (2), normalen (2), funktion (2), fehler (2), beachten (2), map (2), neuen (2), keine (2), dataset (2), toolbar (2), wurde (2), lesen (2), aus (2), welches (2), gefunden (2), null (2), items (2), einschließlich (2), erläuterung (2), body (2), added (2), dynamically (2), head (2), style (2), title (2), oberfläche (2), klicks (2), beispiel (2), geprüft (2), mylist (2), behandeln (2), wie (2), eingesetzt (2), angehängt (2), nutzt (2), verhalten (2), laden (2), seite (2), dynamische (2), anzahl (2), arbeitsspeicher (2), häufige (2), hinzugefügte (2), erklärt (2), attribute (2), workers (2), file (2), suche (2), quantoren (2), anker (2), flags (2), components (2), animationen (2), url (2), microtasks (2), formulare (2), ereignisse (2), styles (2), klassen (2), arrays (2), generatoren (2), advanced (2), await (2), fehlerbehandlung (2), promises (2), chaining (2), error (2), erweitern (2), prototypes (2), interaktive (2), property (2), object (2), arrow (2), new (2), syntax (2), variablen (2), functions (2), objects (2), hash (2), 2026, rechte, vorbehalten, gemacht, sprache, datenschutzrichtlinie, kontakt, uns, unternehmen, üben, kostenlose, tutorials, seit, 2014, next, previous, yes, helpful, exakt, hängt, separaten, trifft, etwa, mouse, touch, keyboard, unverzichtbare, effizientes, vielen, dynamischem, durch, anwenden, können, wartbarkeit, deutlich, reaktionsschneller, machen, erstellen, statt, eingebauten, siehe, ordnung, präzise, gesteuert, standardaktionen, früh, aufrufen, preventdefault, bubbelnde, einzelnes, eindeutiges, erneutes, nötig, entfernt, tabelle, grid, situation, alles, hängen, bedeutet, ihr, ausgeführt, begrenzen, kleinsten, sinnvollen, weit, gefasste, aufruft, erreicht, ihren, delegierten, nie, vermeiden, außer, benötigen, wirklich, gestoppte, propagation, bindet, eigenes, geschrieben, pfeilfunktionen, ursprungsort, registriert, verwechseln, häufigste, bubbelnden, entsprechungen, fokus, hover, filtern, mouseout, mouseover, jedes, leistungsstark, birgt, jedoch, einige, tücken, folgendes, skaliert, sauber, fügen, eintrag, hinzu, kette, else, sharing, deleting, saving, sobald, bekannt, üblicherweise, darüber, benötigt, aktionsname, zeilenindex, logik, pro, hart, kodieren, widerspricht, zweck, speichern, attribut, wichtig, steigt, hinaus, außerhalb, könnte, hier, trim, selected, should, ignore, clicks, outside, list, entirely, padding, around, find, ancestor, even, logout, settings, profile, löst, problem, ausgehend, gibt, zurück, selektor, entspricht, treffer, macht, robust, gegenüber, verschachteltem, selector, genau, erwartete, listenelemente, enthalten, markup, klickt, innere, schlägt, lautlos, fehl, strong, prüft, angeklickte, reagiert, basierend, geklickten, removed, margin, top, blue, dynamic, example, utf, charset, meta, lang, doctype, hinzugefügten, genutzt, effektiv, dynamischen, eigenschaft, sicherzustellen, stammt, you, alert, more, stellen, vor, haben, möchten, einzeln, zuzuweisen, folgenden, zeigen, realen, szenarien, liest, ermittelt, relevanten, gehört, handelt, entsprechend, identisch, tatsächliche, interagiert, hat, tiefste, entscheiden, phase, ausgelöstes, seinen, abfängt, zwei, entscheidend, funktionsweise, vereinfacht, verwaltung, listenern, ähnlich, einfachheit, ersten, reduziert, anwendung, sparen, großen, speichereffizienz, vorteile, falls, neu, zuerst, mechanismus, gesamte, aufbaut, tatsache, meisten, anschließend, übergeordneten, großelternelement, weiter, bis, anstatt, einzelnen, hinzuzufügen, gemeinsamen, dieser, beliebigen, nachfahren, sollte, robuste, allein, fehleranfällig, spart, verwaltet, stützt, leistungsstarke, zur, effizienten, behandlung, insbesondere, vorhanden, anleitung, basiert, beim, zuverlässigen, einsatz, verständlich, intl, vibration, notifications, audio, webrtc, geolocation, websockets, service, midi, storage, validation, fullscreen, history, orientation, push, webgl, battery, animations, apis, regexp, sticky, position, katastrophales, backtracking, lookahead, lookbehind, alternation, rückwärtsreferenzen, name, erfassungsgruppen, gierige, faule, sets, ranges, escaping, sonderzeichen, wortgrenze, mehrzeiliger, modus, anfang, ende, unicode, klasse, zeichenklassen, regex, regular, expressions, styling, slots, komposition, template, custom, animation, indexeddb, localstorage, sessionstorage, cookies, cookie, storing, wiederaufnehmbarer, dateiupload, server, sent, xmlhttprequest, ursprungsübergreifende, anfragen, abbruch, download, fortschritt, formdata, network, requests, canvas, references, loop, macrotasks, selection, range, resizeobserver, intersectionobserver, mutation, observer, various, ressourcen, onload, onerror, scripts, defer, domcontentloaded, load, beforeunload, unload, resource, loading, ereignis, methode, submit, clipboard, change, input, cut, copy, paste, fokussierung, formulareigenschaften, forms, controls, scrolling, tastatur, keyup, drag, drop, mausbewegungen, mausereignisse, grundlagen, introduction, koordinaten, fenstergrößen, scrollen, dokument, verändern, knoteneigenschaften, typ, tag, getelement, queryselector, browserumgebung, spezifikationen, streams, filereader, blob, textdecoder, textencoder, arraybuffer, binäre, binary, files, fensterübergreifende, kommunikation, popups, window, frames, windows, polyfills, transpiler, bigint, currying, eval, proxy, reflect, miscellaneous, imports, export, import, module, modules, iteratoren, generators, iteration, promisification, callbacks, try, catch, mixins, checking, instanceof, eingebaute, private, geschützte, statische, klassenvererbung, grundsyntax, classes, prototyp, __proto__, native, prototypale, vererbung, inheritance, widgets, optimierung, debugging, barrierefreiheit, kompatibilität, manipulationsbibliotheken, fortgeschrittene, techniken, manipulationstechniken, traversieren, arbeiten, manipulieren, auswählen, knoten, getter, setter, deskriptoren, properties, configuration, closures, vertieft, binding, debounce, throttle, dekoratoren, weiterleitung, call, apply, settimeout, setinterval, nfe, globales, alte, var, scope, rest, parameter, spread, rekursion, stack, tojson, datum, uhrzeit, destructuring, assignment, keys, values, entries, weakmap, weakset, set, iterables, array, strings, math, zahlen, primitiven, types, optional, konstruktor, operator, primitiv, konvertierung, symbol, typen, garbage, collection, objektmethoden, basics, es6, funktionsausdrücke, schleifen, switch, bedingte, nullish, coalescing, logische, vergleichsoperatoren, typkonvertierungen, datentypen, use, strict, kommentare, basic, anmelden, durchsuchen, formatters, reverse, sha256, md5, length, calculator, colors, hsl, hex, mixer, converter, picker, general, kurse, tutorial,
Text of the page (random words):
weiterleitung call apply js debounce throttle js function binding js arrow funktionen vertieft js closures object properties configuration js property flags und deskriptoren js property getter und setter javascript html dom dom einführung die dom knoten dom elemente auswählen den dom manipulieren arbeiten mit styles im dom event handling im dom dom traversieren dom manipulationstechniken formulare im dom verwenden fortgeschrittene dom techniken dom manipulationsbibliotheken dom browser kompatibilität dom barrierefreiheit debugging und tools performance optimierung interaktive elemente und widgets prototypes inheritance js prototypale vererbung js native prototypes js prototyp methoden objekte ohne __proto__ classes js class grundsyntax js klassenvererbung statische eigenschaften und methoden private und geschützte eigenschaften in js js eingebaute klassen erweitern js class checking instanceof js mixins error handling js fehlerbehandlung try catch js benutzerdefinierte fehler error erweitern promises async await js einführung callbacks js promise js promise chaining js fehlerbehandlung mit promises promise api promisification microtasks async await generators advanced iteration generatoren async iteratoren und generatoren modules module export und import dynamische imports miscellaneous proxy und reflect eval currying bigint js polyfills transpiler frames and windows popups und window methoden fensterübergreifende kommunikation binary data files arraybuffer binäre arrays textdecoder und textencoder blob file und filereader js streams api document browserumgebung spezifikationen suche getelement queryselector knoteneigenschaften typ tag und inhalt attribute und eigenschaften das dokument verändern styles und klassen fenstergrößen und scrollen koordinaten introduction to events javascript einführung in browser ereignisse bubbling und capturing event delegation standard browseraktionen benutzerdefinierte ereignisse auslösen ui events mausereignisse grundlagen mausbewegungen drag and drop tastatur keydown und keyup scrolling forms controls formulareigenschaften und methoden fokussierung focus blur events change input cut copy paste js clipboard api formulare ereignis und methode submit document and resource loading page domcontentloaded load beforeunload unload scripts async defer ressourcen laden onload und onerror various mutation observer js intersectionobserver js resizeobserver selection und range event loop microtasks und macrotasks javascript references canvas network requests fetch api formdata fetch download fortschritt fetch abbruch fetch ursprungsübergreifende anfragen url objekte xmlhttprequest js server sent events wiederaufnehmbarer dateiupload storing data in the browser cookies document cookie localstorage sessionstorage indexeddb animation css animationen javascript animationen web components web components custom elements shadow dom template element shadow dom slots komposition shadow dom styling shadow dom und events regular expressions js regex muster und flags zeichenklassen unicode flag u und klasse p anker string anfang und ende mehrzeiliger modus der anker flag m wortgrenze b escaping sonderzeichen sets und ranges quantoren und n gierige und faule quantoren erfassungsgruppen rückwärtsreferenzen im muster n und k name javascript alternation or lookahead und lookbehind katastrophales backtracking sticky flag y suche an position methoden von regexp und string javascript apis web animations api file api battery api webgl push api screen orientation api history api console api fullscreen api validation api web storage api web midi api js web workers service workers websockets geolocation webrtc web audio api notifications api die vibration api js intl api javascript event delegation javascript event delegation event bubbling event target closest muster data attribute und häufige fallstricke verständlich erklärt event delegation in javascript meistern event delegation ist eine leistungsstarke technik in javascript zur effizienten behandlung von events insbesondere wenn viele ähnliche oder dynamisch hinzugefügte elemente vorhanden sind diese anleitung erklärt was event delegation ist warum sie nützlich ist wie sie auf event bubbling basiert und welche muster und fallstricke beim zuverlässigen einsatz zu beachten sind diese seite behandelt was event delegation ist und das bubbling verhalten auf das sie sich stützt warum sie arbeitsspeicher spart und dynamisch hinzugefügte elemente verwaltet das robuste event target closest muster und warum tagname allein fehleranfällig ist daten aus angeklickten elementen mit data attributen auslesen häufige fallstricke einschließlich events die nicht bubblen wann event delegation nicht eingesetzt werden sollte event delegation verstehen event delegation nutzt die tatsache dass die meisten events im dom nach oben bubblen wenn ein event auf einem element ausgelöst wird wird es anschließend auf dem übergeordneten element dann auf dem großelternelement und so weiter bis zum document ausgelöst anstatt jedem einzelnen element einen event listener hinzuzufügen wird ein einziger listener an einen gemeinsamen vorfahren angehängt dieser eine listener behandelt alle events die von beliebigen nachfahren nach oben bubblen falls bubbling neu für sie ist lesen sie zuerst bubbling und capturing das ist der mechanismus auf dem die gesamte technik aufbaut vorteile von event delegation speichereffizienz reduziert die anzahl der event listener in ihrer anwendung was arbeitsspeicher sparen und die performance verbessern kann besonders bei einer großen anzahl von elementen dynamische elemente behandelt events auf elementen die nach dem ersten laden der seite dynamisch zum dom hinzugefügt werden einfachheit vereinfacht die verwaltung von event listenern besonders wenn sich viele elemente ähnlich verhalten funktionsweise event delegation nutzt die bubbling phase ein auf einem kind element ausgelöstes event bubbled zu seinen vorfahren wo ein einziger listener es abfängt zwei eigenschaften sind im handler entscheidend event target das tatsächliche element mit dem der benutzer interagiert hat das tiefste element dieses wird geprüft um zu entscheiden welches element angeklickt wurde event currenttarget das element an dem der listener angehängt ist das elternelement innerhalb einer normalen funktion ist dieses identisch mit this der handler liest event target ermittelt ob es zu einem relevanten kind element gehört und handelt entsprechend praktische beispiele für event delegation im folgenden finden sie praktische beispiele die zeigen wie event delegation in realen szenarien eingesetzt werden kann beispiel 1 klick events auf einer liste behandeln stellen sie sich vor sie haben eine liste von elementen und möchten klick events auf jedem element behandeln ohne jedem listenelement einzeln einen event listener zuzuweisen ul id mylist li item 1 li li item 2 li li item 3 li more items can be added dynamically ul script document getelementbyid mylist addeventlistener click function event if event target tagname li alert you clicked on event target textcontent script kopieren probier es selbst erläuterung der event listener wird dem ul element hinzugefügt wenn ein listenelement li angeklickt wird bubbled das event zum ul und der event listener wird ausgelöst die eigenschaft event target wird geprüft um sicherzustellen dass der klick von einem listenelement stammt beispiel 2 button klicks in einer dynamischen oberfläche verwalten in einer oberfläche mit dynamisch hinzugefügten buttons kann event delegation genutzt werden um button klicks effektiv zu verwalten doctype html html lang en head meta charset utf 8 title dynamic button feedback example title style feedback color blue margin top 10 px style head body div id buttoncontainer buttons can be added or removed dynamically button action 1 button button action 2 button div div id feedback div script const buttoncontainer document getelementbyid buttoncontainer const feedback document getelementbyid feedback buttoncontainer addeventlistener click function event if event target tagname button feedback textcontent button clicked event target textcontent script body html kopieren probier es selbst erläuterung ein einziger click event listener wird einem container element hinzugefügt er prüft ob das angeklickte element ein button ist und reagiert basierend auf dem geklickten button auf das klick event ein robusteres muster closest verwenden das prüfen von event target tagname funktioniert nur wenn der benutzer genau das erwartete element anklickt aber buttons und listenelemente enthalten oft verschachteltes markup ein icon ein span ein strong klickt der benutzer auf dieses innere element ist event target der span nicht der button und eine prüfung auf tagname button schlägt lautlos fehl element closest selector löst dieses problem es traversiert ausgehend von event target nach oben und gibt den nächsten vorfahren einschließlich des elements selbst zurück der dem css selektor entspricht oder null wenn kein treffer gefunden wird das macht die delegation robust gegenüber verschachteltem inhalt ul id menu li class menu item span profile span li li class menu item span settings span li li class menu item span logout span li ul script document getelementbyid menu addeventlistener click function event find the menu item ancestor even if a span was clicked const item event target closest menu item closest can return null e g a click on padding around the items and we should ignore clicks outside this list entirely if item this contains item return console log selected item textcontent trim script kopieren die prüfung item this contains item ist wichtig closest steigt auch über den container hinaus sodass ohne this contains item ein element außerhalb der liste gefunden werden könnte this ist hier das ul das currenttarget daten mit data attributen auslesen sobald bekannt ist welches element angeklickt wurde werden üblicherweise daten darüber benötigt eine id ein aktionsname ein zeilenindex logik pro element hart zu kodieren widerspricht dem zweck der delegation speichern sie die daten stattdessen mit einem data attribut auf jedem element und lesen sie sie über dataset aus div id toolbar button data action save save button button data action delete delete button button data action share share button div script const actions save console log saving delete console log deleting share console log sharing document getelementbyid toolbar addeventlistener click function event const button event target closest button data action if button return const handler actions button dataset action if handler handler script kopieren dieses action map muster skaliert sauber fügen sie einen neuen button mit einem data action und einem passenden eintrag im actions objekt hinzu keine neuen listener keine if else kette fallstricke und besonderheiten event delegation ist leistungsstark birgt jedoch einige tücken beachten sie folgendes nicht jedes event bubbled focus blur mouseenter und mouseleave bubblen nicht daher kann delegation sie auf einem elternelement nicht abfangen verwenden sie stattdessen die bubbelnden entsprechungen focusin focusout für fokus events und mouseover mouseout für hover events dann mit event target filtern event target vs event currenttarget target ist der ursprungsort des events currenttarget und this in einer normalen funktion ist das element an dem der listener registriert ist diese zu verwechseln ist der häufigste fehler bei der delegation pfeilfunktionen und this eine pfeilfunktion bindet kein eigenes this daher ist this nicht der container verwenden sie stattdessen event currenttarget wenn der handler als pfeilfunktion geschrieben wird gestoppte propagation wenn ein kind handler event stoppropagation aufruft erreicht das event ihren delegierten listener nie vermeiden sie stoppropagation außer sie benötigen es wirklich zu weit gefasste container den listener für alles an document zu hängen bedeutet dass bei jedem klick ihr handler ausgeführt wird begrenzen sie den listener auf den kleinsten sinnvollen vorfahren wann verwenden und wann nicht situation delegation viele ähnliche kind elemente liste tabelle grid ja ein listener für alle kind elemente werden dynamisch hinzugefügt entfernt ja kein erneutes binden nötig ein einzelnes eindeutiges element nein direkt binden einfacher nicht bubbelnde events focus blur nein focusin focusout verwenden oder direkt binden sie müssen preventdefault früh aufrufen oft in ordnung aber direkt binden für standardaktionen die präzise gesteuert werden müssen für events die sie selbst erstellen statt die eingebauten browser events zu verwenden siehe benutzerdefinierte events auslösen fazit event delegation ist eine unverzichtbare technik für effizientes event handling in javascript besonders nützlich in anwendungen mit vielen elementen oder dynamischem inhalt durch das verstehen und anwenden von event delegation können entwickler die performance und wartbarkeit ihrer anwendungen deutlich verbessern und sie reaktionsschneller und einfacher zu verwalten machen übungen übung welche arten von javascript events werden auf der w3docs website erwähnt welche arten von javascript events werden auf der w3docs website erwähnt keyboard events touch events mouse events screen events prüfen übung warum ist event target closest menu item zuverlässiger als die prüfung von event target tagname bei der delegation warum ist event target closest menu item zuverlässiger als die prüfung von event target tagname bei der delegation es trifft auch dann zu wenn der benutzer ein verschachteltes element innerhalb des elements anklickt etwa ein icon oder einen span es traversiert das dom nach oben um den nächsten passenden vorfahren des angeklickten elements zu finden es hängt jedem kind element einen separaten listener an es funktioniert nur auf dem exakt angeklickten element prüfen übung welche events bubblen nicht sodass eine einfache delegation auf einem elternelement sie nicht abfangen kann welche events bubblen nicht sodass eine einfache delegation auf einem elternelement sie nicht abfangen kann focus und blur mouseenter und mouseleave click keydown prüfen was this page helpful yes no previous bubbling und capturing next standard browseraktionen on this page event delegation in javascript meistern event delegation verstehen praktische beispiele für event delegation ein robusteres muster closest verwenden daten mit data attributen auslesen fallstricke und besonderheiten wann verwenden und wann nicht fazit übungen w3docs kostenlose tutorials beispiele übungen snippets und quizze für das web seit 2014 bücher html lernen css lernen javascript lernen git lernen java lernen php lernen python lernen üben übungen quizze probier editor tools html editor password generator html encoder code diff json beautifier unternehmen über uns kontakt datenschutzrichtlinie sprache english deutsch русский français español português italiano 2026 w3docs alle rechte vorbehalten fü...
|