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>