28 lines
933 B
JavaScript
28 lines
933 B
JavaScript
|
(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]);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
})();
|