From 742f05b9bdd71bdab61fe89e788061298fa82cad Mon Sep 17 00:00:00 2001 From: Carson Gross Date: Fri, 13 May 2022 08:44:41 -0600 Subject: [PATCH] support filters on `load` event fixes https://github.com/bigskysoftware/htmx/issues/752 --- src/htmx.js | 4 +++- test/attributes/hx-trigger.js | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/htmx.js b/src/htmx.js index 565fa823..c3e0deca 100644 --- a/src/htmx.js +++ b/src/htmx.js @@ -1652,7 +1652,9 @@ return (function () { observer.observe(elt); addEventListener(elt, verb, path, nodeData, triggerSpec); } else if (triggerSpec.trigger === "load") { - loadImmediately(elt, verb, path, nodeData, triggerSpec.delay); + if (!maybeFilterEvent(triggerSpec, makeEvent("load", {elt:elt}))) { + loadImmediately(elt, verb, path, nodeData, triggerSpec.delay); + } } else if (triggerSpec.pollInterval) { nodeData.polling = true; processPolling(elt, verb, path, triggerSpec); diff --git a/test/attributes/hx-trigger.js b/test/attributes/hx-trigger.js index b40d0a03..d45e4642 100644 --- a/test/attributes/hx-trigger.js +++ b/test/attributes/hx-trigger.js @@ -714,5 +714,24 @@ describe("hx-trigger attribute", function(){ div.innerText.should.equal("Requests: 1"); }); + it('load event works w/ positive filters', function() + { + this.server.respondWith("GET", "/test", "Loaded!"); + var div = make('
Load Me!
'); + div.innerHTML.should.equal("Load Me!"); + this.server.respond(); + div.innerHTML.should.equal("Loaded!"); + }); + + it('load event works w/ negative filters', function() + { + this.server.respondWith("GET", "/test", "Loaded!"); + var div = make('
Load Me!
'); + div.innerHTML.should.equal("Load Me!"); + this.server.respond(); + div.innerHTML.should.equal("Load Me!"); + }); + + })