Spec-Zone.ru › htmx

hx-preserve

Сохраняет элемент при замене

Атрибут hx-preserve оставляет элемент без изменений при замене родительского элемента.

Сохраняемые элементы сопоставляются по id. Используйте стабильный id и включайте тот же id в ответ.

Тип элемента в ответе и другие атрибуты игнорируются.

Синтаксис

<div id="video-player" hx-preserve="true">...</div>

Примечания

  • Можно использовать 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>
  • Работает с морфологическими заменами (innerMorph/outerMorph). Если ответ сервера содержит элемент с hx-preserve, htmx сохраняет живой элемент перед морфингом и восстанавливает его после. Для морфинга, как и для других стилей замены, требуется id. Обратите внимание: при морфинге идентичность элементов с совпадающими id сохраняется изначально. Состояние DOM, фокус и положение прокрутки сохраняются без hx-preserve. Чтобы полностью предотвратить изменение элемента или его дочерних элементов при обновлении с сервера, используйте hx-morph-skip или hx-morph-skip-children в шаблонах сервера. Они работают аналогично hx-preserve, но предназначены специально для морфинга и не всегда требуют id.

Licensed under the Zero-Clause BSD License.
https://four.htmx.org/reference/attributes/hx-preserve/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API