Skip to content

Commit

Permalink
fix: prevent duplicate events listeners
Browse files Browse the repository at this point in the history
  • Loading branch information
frankpagan committed May 1, 2023
1 parent 024ee43 commit a247b0c
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,16 @@ const CoCreateEvents = {
initElements: function(elements, prefix, events = []) {
const self = this
for (const el of elements) {
let isEventable = true
let prefixes = this.elements.get(el)
if (!prefixes) {
prefixes = {[prefix]: {events}}
this.elements.set(el, prefixes)
} else if (!prefixes[prefix]) {
prefixes[prefix] = {events}
} else {
events = prefixes[prefix].events
isEventable = false
// events = //prefixes[prefix].events
}

let customEvents = el.getAttribute(`${prefix}-events`)
Expand All @@ -110,9 +112,10 @@ const CoCreateEvents = {

events = customEvents
prefixes[prefix].events = events
isEventable = true
}
if (!events)
events = []
if (!events || !isEventable)
continue
if (events.includes('onload'))
this.__updateElements(el, prefix);

Expand All @@ -135,8 +138,10 @@ const CoCreateEvents = {
}

for (let i = 0; i < events.length; i++) {
if (events[i] !== 'onload' && events[i] !== 'observer')
if (events[i] !== 'onload' && events[i] !== 'observer') {
el.removeEventListener(events[i], eventFunction)
el.addEventListener(events[i], eventFunction);
}
}

function eventFunction(event) {
Expand Down

0 comments on commit a247b0c

Please sign in to comment.