方法 - htmx.onLoad()
htmx:load 事件在 HTMX 插入新的内容到页面并完成后触发。
也就是说,每当 HTMX 通过请求获取了新内容并将其插入到 DOM 后,htmx:load 会触发。
它类似于普通的 DOMContentLoaded,但针对 HTMX 动态加载的部分。
参数
- callback(elt) - 调用新加载内容的回调
event.detail 主要属性:
- target:新插入内容的父容器元素
- xhr:关联的 XMLHttpRequest 对象
- detail:事件详情
示例:给动态插入内容绑定事件
<div id="container"></div>
<button hx-get="/fragment" hx-target="#container" hx-swap="innerHTML">
加载内容
</button>
<script>
document.body.addEventListener("htmx:load", function(event) {
const container = event.detail.target;
console.log("htmx:load 触发,插入内容的容器:", container);
// 假设新内容中有 class="clickable" 元素,绑定事件
container.querySelectorAll(".clickable").forEach(el => {
el.addEventListener("click", () => alert("动态元素被点击!"));
});
});
</script>