From 2944bf372c1292199c9ba81c6038bd8aec21efd0 Mon Sep 17 00:00:00 2001 From: carson Date: Fri, 12 Nov 2021 15:37:29 -0700 Subject: [PATCH] search for extensions in new content fixes https://github.com/bigskysoftware/htmx/issues/281 --- src/ext/path-deps.js | 5 ++++- src/ext/remove-me.js | 2 +- src/htmx.js | 2 +- test/ext/remove-me.js | 10 ++++++++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/ext/path-deps.js b/src/ext/path-deps.js index 5b40aaca..4987e50e 100644 --- a/src/ext/path-deps.js +++ b/src/ext/path-deps.js @@ -5,6 +5,9 @@ var _root = this; function dependsOn(pathSpec, url) { + if (pathSpec === "ignore") { + return false; + } var dependencyPath = pathSpec.split("/"); var urlPath = url.split("/"); for (var i = 0; i < urlPath.length; i++) { @@ -35,7 +38,7 @@ if (name === "htmx:beforeOnLoad") { var config = evt.detail.requestConfig; // mutating call - if (config.verb !== "get") { + if (config.verb !== "get" && evt.target.getAttribute('path-deps') !== 'ignore') { refreshPath(config.path); } } diff --git a/src/ext/remove-me.js b/src/ext/remove-me.js index 8dc3429f..42be9932 100644 --- a/src/ext/remove-me.js +++ b/src/ext/remove-me.js @@ -15,7 +15,7 @@ if (elt.getAttribute) { maybeRemoveMe(elt); if (elt.querySelectorAll) { - var children = elt.querySelectorAll("[remove-me], [data-remove-me"); + var children = elt.querySelectorAll("[remove-me], [data-remove-me]"); for (var i = 0; i < children.length; i++) { maybeRemoveMe(children[i]); } diff --git a/src/htmx.js b/src/htmx.js index 9207b282..3ccb2b74 100644 --- a/src/htmx.js +++ b/src/htmx.js @@ -1444,7 +1444,7 @@ return (function () { if (elt.querySelectorAll) { var boostedElts = isBoosted() ? ", a, form" : ""; var results = elt.querySelectorAll(VERB_SELECTOR + boostedElts + ", [hx-sse], [data-hx-sse], [hx-ws]," + - " [data-hx-ws]"); + " [data-hx-ws], [hx-ext], [hx-data-ext]"); return results; } else { return []; diff --git a/test/ext/remove-me.js b/test/ext/remove-me.js index 1d710944..cdfd51f8 100644 --- a/test/ext/remove-me.js +++ b/test/ext/remove-me.js @@ -39,5 +39,15 @@ describe("remove-me extension", function(){ }, 100); }); + it('extension can be on a child', function(done) + { + var div = make('
Click Me!
') + should.equal(div.classList.length, 0); + setTimeout(function(){ + should.equal(byId("d1"), null); + done(); + }, 100); + }); + })