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/