hx-preserve
属性 hx-preserve 允许您在 HTML 替换期间保持元素不变。当 htmx 更新任何父元素时, 设置了 hx-preserve 的元素将保留。您必须在元素上设置不变才能工作。响应需要具有相同 的元素,但其类型和其他属性将被忽略。ididhx-preserveid
笔记
- hx-preserve不会被继承
- 您可以使用 hx-preserve="true" 它或将其用作布尔属性 hx-preserve
- 不幸的是,有些元素无法正确保存,例如 <input type="text">(焦点和插入符号位置丢失)、iframe 或某些类型的视频。为了解决其中一些情况,我们建议使用morphdom 扩展,它可以进行更复杂的 DOM 协调
- 当使用历史记录支持诸如后退按钮之类的操作时hx-preserve,元素的状态也会保留
- 避免将 hx-swap none 与可能包含元素的请求一起使用 hx-preserve ,以免丢失它
- hx-preserve 在部分 /oob 响应中进行交换时,可能会导致元素从其当前位置移除并重新定位到新位置
<div id="new_location">
Just relocated the video here
<div id="video" hx-preserve></div>
</div>
可以在 hx-swap-oob 元素的内部内容中使用
<div id="notify" hx-swap-oob="true">
Notification updated but keep the same retain
<div id="retain" hx-preserve></div>
</div>