Skip to content

Commit b8b342b

Browse files
committed
Fix empty class that miss targeted oob swaps can cause
1 parent 6626575 commit b8b342b

2 files changed

Lines changed: 5 additions & 7 deletions

File tree

src/htmx.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1886,8 +1886,7 @@ var htmx = (function() {
18861886
swapOptions = {}
18871887
}
18881888

1889-
target = resolveTarget(target)
1890-
target.classList.add(htmx.config.swappingClass)
1889+
addClassToElement(target, htmx.config.swappingClass)
18911890

18921891
// optional transition API promise callbacks
18931892
let settleResolve = null
@@ -1898,6 +1897,7 @@ var htmx = (function() {
18981897
let doSwap = function() {
18991898
maybeCall(swapOptions.beforeSwapCallback)
19001899

1900+
target = resolveTarget(target)
19011901
const rootNode = swapOptions.contextElement ? getRootNode(swapOptions.contextElement, false) : getDocument()
19021902

19031903
// preserve focus and selection
@@ -1995,7 +1995,7 @@ var htmx = (function() {
19951995
}
19961996
}
19971997

1998-
target.classList.remove(htmx.config.swappingClass)
1998+
removeClassFromElement(target, htmx.config.swappingClass)
19991999
forEach(settleInfo.elts, function(elt) {
20002000
if (elt.classList) {
20012001
elt.classList.add(htmx.config.settlingClass)
@@ -2020,9 +2020,7 @@ var htmx = (function() {
20202020
task.call()
20212021
})
20222022
forEach(settleInfo.elts, function(elt) {
2023-
if (elt.classList) {
2024-
elt.classList.remove(htmx.config.settlingClass)
2025-
}
2023+
removeClassFromElement(elt, htmx.config.settlingClass)
20262024
triggerEvent(elt, 'htmx:afterSettle', swapOptions.eventInfo)
20272025
})
20282026

test/attributes/hx-swap-oob.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ describe('hx-swap-oob attribute', function() {
435435
make('<table id="table"><tbody></tbody></table>')
436436
div.click()
437437
this.server.respond()
438-
byId('table').innerHTML.should.equal('<tbody class=""><tr><td>Swapped15</td></tr></tbody>')
438+
byId('table').innerHTML.should.equal('<tbody><tr><td>Swapped15</td></tr></tbody>')
439439
})
440440

441441
it('works with a swap delay', function(done) {

0 commit comments

Comments
 (0)