Home / Function/ create_event() — svelte Function Reference

create_event() — svelte Function Reference

Architecture documentation for the create_event() function in events.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  12245a28_3cec_3119_faa7_968496e0db88["create_event()"]
  2c990bd1_acff_5910_3af2_ab75f655b31b["events.js"]
  12245a28_3cec_3119_faa7_968496e0db88 -->|defined in| 2c990bd1_acff_5910_3af2_ab75f655b31b
  4c70ef10_16f1_40f4_1d51_8a7169bd1dba["set_attributes()"]
  4c70ef10_16f1_40f4_1d51_8a7169bd1dba -->|calls| 12245a28_3cec_3119_faa7_968496e0db88
  a182a6a3_1f1f_84a4_fbdc_e20427ca84fc["on()"]
  a182a6a3_1f1f_84a4_fbdc_e20427ca84fc -->|calls| 12245a28_3cec_3119_faa7_968496e0db88
  c19e92b3_4483_023c_ecdb_0439ea880ffa["event()"]
  c19e92b3_4483_023c_ecdb_0439ea880ffa -->|calls| 12245a28_3cec_3119_faa7_968496e0db88
  e95d0513_ce71_430f_7ef3_577e736f42c1["without_reactive_context()"]
  12245a28_3cec_3119_faa7_968496e0db88 -->|calls| e95d0513_ce71_430f_7ef3_577e736f42c1
  2cab0f64_6d19_d981_66e2_d2555c252702["queue_micro_task()"]
  12245a28_3cec_3119_faa7_968496e0db88 -->|calls| 2cab0f64_6d19_d981_66e2_d2555c252702
  style 12245a28_3cec_3119_faa7_968496e0db88 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/client/dom/elements/events.js lines 50–83

export function create_event(event_name, dom, handler, options = {}) {
	/**
	 * @this {EventTarget}
	 */
	function target_handler(/** @type {Event} */ event) {
		if (!options.capture) {
			// Only call in the bubble phase, else delegated events would be called before the capturing events
			handle_event_propagation.call(dom, event);
		}
		if (!event.cancelBubble) {
			return without_reactive_context(() => {
				return handler?.call(this, event);
			});
		}
	}

	// Chrome has a bug where pointer events don't work when attached to a DOM element that has been cloned
	// with cloneNode() and the DOM element is disconnected from the document. To ensure the event works, we
	// defer the attachment till after it's been appended to the document. TODO: remove this once Chrome fixes
	// this bug. The same applies to wheel events and touch events.
	if (
		event_name.startsWith('pointer') ||
		event_name.startsWith('touch') ||
		event_name === 'wheel'
	) {
		queue_micro_task(() => {
			dom.addEventListener(event_name, target_handler, options);
		});
	} else {
		dom.addEventListener(event_name, target_handler, options);
	}

	return target_handler;
}

Domain

Subdomains

Frequently Asked Questions

What does create_event() do?
create_event() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/dom/elements/events.js.
Where is create_event() defined?
create_event() is defined in packages/svelte/src/internal/client/dom/elements/events.js at line 50.
What does create_event() call?
create_event() calls 2 function(s): queue_micro_task, without_reactive_context.
What calls create_event()?
create_event() is called by 3 function(s): event, on, set_attributes.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free