From 4b572b8e3d438e7f8f43ed412c076b9d94061006 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 4 Feb 2022 17:51:05 +0000 Subject: [PATCH] Clarify hx-preserve docs (#798) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I mistakenly thought that I could mark a (third party) node with `hx-preserve` and it would be carried onto the next page, but this is not the case. This makes sense. I’ve tried to improve the documentation to reflect this, and make the behaviour clearer in general. --- www/attributes/hx-preserve.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/www/attributes/hx-preserve.md b/www/attributes/hx-preserve.md index 7107ef07..5017288b 100644 --- a/www/attributes/hx-preserve.md +++ b/www/attributes/hx-preserve.md @@ -5,8 +5,10 @@ title: htmx - hx-preserve ## `hx-preserve` -The `hx-preserve` attribute allows you to keep a section of content unchanged between HTML replacement. When hx-preserve is set to `true`, an element is preserved (by id) even if the surrounding HTML is updated by htmx. An element *must* have an `id` to be preserved -properly. +The `hx-preserve` attribute allows you to keep an element unchanged during HTML replacement. +Elements with `hx-preserve` set are preserved by `id` when htmx updates any ancestor element. +You *must* set an unchanging `id` on elements for `hx-preserve` to work. +The response requires an element with the same `id`, but its type and other attributes are ignored. Here is an example of a youtube embed, which would be unaffected an htmx request: