From 7b00afb229ddfdc7b903b9afe7f3073190144941 Mon Sep 17 00:00:00 2001 From: Jen Date: Sat, 15 Jun 2024 17:45:02 +0800 Subject: [PATCH] Add debounce time on event listeners --- index.html | 31 ++++++++++++++++++++++++++++++- lib/entity/events.js | 22 +++++++++++++++------- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 208f873..7af21e6 100644 --- a/index.html +++ b/index.html @@ -1032,7 +1032,7 @@

On Change Example:

-
+

Custom Select:

@@ -1107,6 +1107,35 @@

On Change Example:

+
  • + Dwight Schrute + + + +
  • { - el.addEventListener(eventName, event) + [].concat(listener).forEach(({ el, eventName, event }) => { + el.addEventListener(eventName, (e) => { + this.debounce(() => { + event(e) + }, 50) }) - } else { - const { el, eventName, event } = listener - el.addEventListener(eventName, event) - } + }) } + debounce(callback, wait) { + if (this.timeout) return + clearTimeout(this.timeout) + this.timeout = setTimeout(() => { + callback() + this.timeout = null + }, wait) + } + setChangeEvent() { const el = this.entity.element const key = ':change'