diff --git a/tachys/src/html/element/element_ext.rs b/tachys/src/html/element/element_ext.rs
index b259d7f9a1..370f199baa 100644
--- a/tachys/src/html/element/element_ext.rs
+++ b/tachys/src/html/element/element_ext.rs
@@ -44,6 +44,14 @@ pub trait ElementExt {
S: IntoStyle;
/// Adds an event listener to the element, at runtime.
+ ///
+ /// Dropping the returned handle also drops the closure and invalidates the event listener.
+ /// Consider using [on_cleanup](reactive_graph::owner::Owner::on_cleanup) to delay dropping:
+ ///
+ /// ```rust,ignore
+ /// let remove = element.on(ev::blur, move |_| /* ... */);
+ /// on_cleanup(move || std::mem::drop(remove));
+ /// ```
fn on(
&self,
ev: E,