Sha256: 95c921098461f66a01ee9a5925e47dc62d0c8f68250fd3015c6d894ef9b99f61

Contents?: true

Size: 527 Bytes

Versions: 140

Compression:

Stored size: 527 Bytes

Contents

export function on(eventName, baseSelector, targetSelector, callback) {
  document.querySelectorAll(baseSelector).forEach((baseNode) => {
    baseNode.addEventListener(eventName, (evt) => {
      const targets = Array.from(baseNode.querySelectorAll(targetSelector))
      let currentNode = evt.target

      while (currentNode !== baseNode) {
        if (targets.includes(currentNode)) {
          callback.call(currentNode, evt)
          return
        }
        currentNode = currentNode.parentElement
      }
    })
  })
}

Version data entries

140 entries across 140 versions & 1 rubygems

Version Path
alchemy_cms-5.1.4 package/src/utils/events.js
alchemy_cms-5.0.4 package/src/utils/events.js
alchemy_cms-5.1.3 package/src/utils/events.js
alchemy_cms-5.2.0 package/src/utils/events.js
alchemy_cms-5.2.0.rc1 package/src/utils/events.js
alchemy_cms-5.2.0.b1 package/src/utils/events.js
alchemy_cms-5.1.2 package/src/utils/events.js
alchemy_cms-5.1.1 package/src/utils/events.js
alchemy_cms-5.0.3 package/src/utils/events.js
alchemy_cms-5.1.0 package/src/utils/events.js
alchemy_cms-5.0.2 package/src/utils/events.js
alchemy_cms-5.1.0.rc1 package/src/utils/events.js
alchemy_cms-5.1.0.beta2 package/src/utils/events.js
alchemy_cms-5.1.0.beta1 package/src/utils/events.js
alchemy_cms-5.0.1 package/src/utils/events.js
alchemy_cms-5.0.0 package/src/utils/events.js
alchemy_cms-5.0.0.rc2 package/src/utils/events.js
alchemy_cms-5.0.0.rc1 package/src/utils/events.js
alchemy_cms-5.0.0.beta2 package/src/utils/events.js
alchemy_cms-5.0.0.beta1 package/src/utils/events.js