Add missing htmx:trigger event on load triggers (#3033)

This commit is contained in:
Alexander Petros 2024-12-11 16:20:12 -05:00 committed by GitHub
parent 5ab508f652
commit bd35f64cf7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 0 deletions

View File

@ -2556,6 +2556,7 @@ var htmx = (function() {
const load = function() {
if (!nodeData.loaded) {
nodeData.loaded = true
triggerEvent(elt, 'htmx:trigger')
handler(elt)
}
}

View File

@ -1043,6 +1043,28 @@ describe('hx-trigger attribute', function() {
}, 50)
})
it('fires the htmx:trigger event when the trigger is a load', function(done) {
this.server.respondWith(
'GET',
'/test',
'<div hx-trigger="load delay:50ms" hx-on::trigger="this.innerText = \'Done\'">Response</div>'
)
var div = make('<div hx-get="/test">Submit</div>')
div.click()
this.server.respond()
var response = div.children[0]
response.innerText.should.equal('Response')
setTimeout(function() {
try {
response.innerText.should.equal('Done')
done()
} finally {
}
}, 100)
})
it('filters support "this" reference to the current element', function() {
this.server.respondWith('GET', '/test', 'Called!')
var form = make('<form hx-get="/test" hx-trigger="click[this.classList.contains(\'bar\')]">Not Called</form>')