I had the need to listen for a particular htmx event to happen, and add some custom JavaScript code.
htmx allows us to do this using plain DOM events.
In this example I redirect to the /
route after the request that was triggered by the HTML element with id
equal to button-delete-project
:
<script>
document.addEventListener('htmx:afterRequest', function (event) {
if ((event as CustomEvent).detail.target.id === 'button-delete-project') {
window.location.href = '/'
}
})
</script>
The detail
object attached to the event provides a lot of useful information.
You have a wide variety of events to listen to, including for example:
htmx:beforeRequest
fired before an HTTP request is issuedhtmx:beforeSwap
fired before a DOM swaphtmx:timeout
fired when a request timeout occurs
You should check https://htmx.org/events/ for the full list and documentation.
Lessons in this unit:
0: | Introduction |
1: | Why htmx |
2: | The core idea of htmx |
3: | Installing htmx |
4: | Doing a GET request |
5: | Swap |
6: | POST request |
7: | Targets |
8: | Loading indicator |
9: | Confirming actions, and prompts |
10: | Triggers |
11: | Request headers |
12: | Response headers |
13: | ▶︎ Events |