mirror of
https://github.com/bigskysoftware/htmx.git
synced 2025-09-30 06:21:19 +00:00
update target to result of `beforeSwap` event
This commit is contained in:
parent
26bd4002d0
commit
f84029badb
@ -3102,6 +3102,7 @@ return (function () {
|
||||
serverResponse = beforeSwapDetails.serverResponse; // allow updating content
|
||||
isError = beforeSwapDetails.isError; // allow updating error
|
||||
|
||||
responseInfo.target = target; // Make updated target available to response events
|
||||
responseInfo.failed = isError; // Make failed property available to response events
|
||||
responseInfo.successful = !isError; // Make successful property available to response events
|
||||
|
||||
|
@ -628,4 +628,30 @@ describe("Core htmx Events", function() {
|
||||
}
|
||||
});
|
||||
|
||||
it("has updated target available when target set via htmx:beforeSwap", function () {
|
||||
|
||||
var targetWasUpdatedInAfterSwapHandler = false;
|
||||
|
||||
var beforeSwapHandler = htmx.on("htmx:beforeSwap", function (evt) {
|
||||
console.log("beforeSwap", evt.detail.target, byId('d2'));
|
||||
evt.detail.target = byId('d2');
|
||||
});
|
||||
var afterSwapHandler = htmx.on("htmx:afterSwap", function (evt) {
|
||||
console.log("afterSwap", evt.detail.target, byId('d2'));
|
||||
targetWasUpdatedInAfterSwapHandler = evt.detail.target === byId('d2');
|
||||
});
|
||||
|
||||
try {
|
||||
this.server.respondWith("GET", "/test", "updated");
|
||||
make("<div id='d0' hx-get='/test' hx-target='#d1'></div><div id='d1'></div><div id='d2'></div>");
|
||||
var div = byId('d0');
|
||||
div.click();
|
||||
this.server.respond();
|
||||
targetWasUpdatedInAfterSwapHandler.should.equal(true);
|
||||
} finally {
|
||||
htmx.off("htmx:beforeSwap", beforeSwapHandler);
|
||||
htmx.off("htmx:afterSwap", afterSwapHandler);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user