aboutsummaryrefslogtreecommitdiff
path: root/htmx/remove-me.js
blob: 0d65743a01a58bc05acc74795498e750db55f19b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(function() {
  function maybeRemoveMe(elt) {
    var timing = elt.getAttribute('remove-me') || elt.getAttribute('data-remove-me')
    if (timing) {
      setTimeout(function() {
        elt.parentElement.removeChild(elt)
      }, htmx.parseInterval(timing))
    }
  }

  htmx.defineExtension('remove-me', {
    onEvent: function(name, evt) {
      if (name === 'htmx:afterProcessNode') {
        var elt = evt.detail.elt
        if (elt.getAttribute) {
          maybeRemoveMe(elt)
          if (elt.querySelectorAll) {
            var children = elt.querySelectorAll('[remove-me], [data-remove-me]')
            for (var i = 0; i < children.length; i++) {
              maybeRemoveMe(children[i])
            }
          }
        }
      }
    }
  })
})()