Add missing htmx:trigger event on load triggers

This commit is contained in:
Alexander Petros 2024-11-04 17:29:48 -05:00
parent bc7ea4a8d9
commit a5c5de9275
2 changed files with 23 additions and 0 deletions

View File

@ -2559,6 +2559,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>')