事件 - htmx:xhr:loadend

当 ajax 请求完成时触发此事件,需要注意的是,通过 fetch 发送的 ajax 请求加载完毕时并不会触发该事件。必须是 hx-get 等由 htmx 发送的 ajax 请求才会生效。

事件参数

  • detail.elt - 触发请求的元素

示例代码

<body>
    <button onclick="fetchData()">Test1</button>
    <button hx-get="/test">Test2</button>
</body>
<script>
    function fetchData() {
        fetch('/test')
            .then(response => response.text())
            .then(data => {
                console.log(data);
                alert(data);
            })
            .catch(error => console.error('Error:', error));
    }
    document.body.addEventListener("htmx:xhr:loadend", function(event) {
        console.log("XHR Load End:", event.detail.elt);
    });
</script>

例如以上代码中,Test1 按钮请求完成后控制台不会打印出 XHR Load End 的字符串,只有 Test2 按钮的代码才会在控制台打印出 XHR Load End 的字符串。