mirror of
https://github.com/bigskysoftware/htmx.git
synced 2026-04-18 12:05:24 +00:00
do not trigger after swap events and logic on element that has been removed by outerHTML swap
This commit is contained in:
@@ -551,6 +551,7 @@ return (function () {
|
||||
var newElt = eltBeforeNewContent.nextSibling;
|
||||
}
|
||||
getInternalData(target).replacedWith = newElt; // tuck away so we can fire events on it later
|
||||
settleInfo.elts = [] // clear existing elements
|
||||
while(newElt && newElt !== target) {
|
||||
if (newElt.nodeType === Node.ELEMENT_NODE) {
|
||||
settleInfo.elts.push(newElt);
|
||||
|
||||
@@ -271,4 +271,20 @@ describe("hx-swap attribute", function(){
|
||||
div.innerHTML.should.equal('Foo');
|
||||
});
|
||||
|
||||
|
||||
it('swap outerHTML does not trigger htmx:afterSwap on original element', function()
|
||||
{
|
||||
this.server.respondWith("GET", "/test", 'Clicked!');
|
||||
var div = make('<div id="d1" hx-get="/test" hx-swap="outerHTML"></div>')
|
||||
div.addEventListener("htmx:afterSwap", function(){
|
||||
count++;
|
||||
})
|
||||
div.click();
|
||||
var count = 0;
|
||||
should.equal(byId("d1"), div);
|
||||
this.server.respond();
|
||||
should.equal(byId("d1"), null);
|
||||
count.should.equal(0);
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user