Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo-mod-jslibs-dist.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'alpinejs/packages/alpinejs/src/directives/x-on.js')
-rw-r--r--alpinejs/packages/alpinejs/src/directives/x-on.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/alpinejs/packages/alpinejs/src/directives/x-on.js b/alpinejs/packages/alpinejs/src/directives/x-on.js
new file mode 100644
index 0000000..91c6d89
--- /dev/null
+++ b/alpinejs/packages/alpinejs/src/directives/x-on.js
@@ -0,0 +1,16 @@
+import { directive, into, mapAttributes, prefix, startingWith } from '../directives'
+import { evaluateLater } from '../evaluator'
+import { skipDuringClone } from '../clone'
+import on from '../utils/on'
+
+mapAttributes(startingWith('@', into(prefix('on:'))))
+
+directive('on', skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => {
+ let evaluate = expression ? evaluateLater(el, expression) : () => {}
+
+ let removeListener = on(el, value, modifiers, e => {
+ evaluate(() => {}, { scope: { '$event': e }, params: [e] })
+ })
+
+ cleanup(() => removeListener())
+}))