Basic View Toggle of DOM Element Using JS in Elixir Phoenix LiveView
From ElixirBlocks
def render(assigns) do ~H""" <div id="item">My Item</div> <button phx-click={JS.toggle(to: "#item")}> toggle item! </button> """ end
Another Example
defmodule AppWeb.SandboxLive do use AppWeb, :live_view def mount(_params, _session, socket) do {:ok, socket} end def button_event("invoke_writing") do %JS{} |> JS.remove_class("active", to: "#writing_button") |> JS.add_class("hidden", to: "#writing_button") |> JS.remove_class("hidden", to: "#preview_button") |> JS.add_class("active", to: "#preview_button") end def button_event("invoke_preview") do %JS{} |> JS.remove_class("active", to: "#preview_button") |> JS.add_class("hidden", to: "#preview_button") |> JS.remove_class("hidden", to: "#writing_button") |> JS.add_class("active", to: "#writing_button") end def render(assigns) do ~H""" <button phx-click={button_event("invoke_writing")} id="writing_button" class="hidden"> Preview </button> <button phx-click={button_event("invoke_preview")} id="preview_button"> Writing </button> """ end end