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:beforeRequestfired before an HTTP request is issuedhtmx:beforeSwapfired before a DOM swaphtmx:timeoutfired 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 |