Skip to content

Commit 17d5a14

Browse files
committed
feat: <prefix>-once attribute to fire event once, if el.isConnected = false return
1 parent 5a74600 commit 17d5a14

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/index.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ const CoCreateEvents = {
243243
},
244244

245245
__updateElements: async function (el, prefix, target, events) {
246-
const self = this;
246+
if (!el.isConnected) return;
247247
let elements = [el];
248248
let targetGroup = el.getAttribute(`${prefix}-group`);
249249
if (targetGroup) {
@@ -255,6 +255,17 @@ const CoCreateEvents = {
255255
}
256256

257257
for (let element of elements) {
258+
let once = element.getAttribute(`${prefix}-once`);
259+
if (once || once === "") {
260+
if (!element.eventsOnce) {
261+
element.eventsOnce = [prefix];
262+
} else if (element.eventsOnce.includes(prefix)) {
263+
continue;
264+
} else {
265+
element.eventsOnce.push(prefix);
266+
}
267+
}
268+
258269
// TODO: support empty value when prefix-attribute defined, add and remove the attribute
259270
let targetAttribute = element.getAttribute(`${prefix}-attribute`);
260271
let targetPosition = element.getAttribute(

0 commit comments

Comments
 (0)