单击时试剂将跨度变为可编辑字段
Reagent turning span into editable field on click
创建一个 figwheel/cljs/clj 应用程序,当用户点击按钮时在前端工作 我想使用 reagent 在点击时将 span 变成可编辑的字段,我该怎么做?
我一直在阅读有关焦点切换的内容,并且 reagent/dom-node 但是鉴于我在网页上显示了 innerHTML aka "real values",我将如何设置 on-click=""本质上将光标移动到 innerhtml(跨度)之外的组件并使其可编辑并且光标开始闪烁。
谢谢大家
不确定你们是否想要代码片段,但是
得到了一个几乎包含以下内容的小部件:
{:type :plain-icon-button
:label [:i.ti-pencil-alt]
:tooltip "Click here to edit"
:attr {:tab-index -1}
:on-click (fn [] (prn "What do i do here :( ")}
再次感谢大家
一个简单的解决方案是同时显示两个字段,using the CSS property display: none;
切换它们,这样一次只有一个可见。在小嗝嗝中:
(:require
[garden.core :as garden]
[goog.style :as style]
[:div
[:button#mybtn {:display :initial}]
[:textfield#mytf {:display :none }]]
然后使用 {:onclick hide-btn}
切换样式
(defn install-css [css-def]
(let [css-str (garden/css css-def)]
(style/installStyles css-str)
css-str))
(defn hide-btn []
(install-css [:#mybtn {:display :none }] )
(install-css [:#mytf {:display :initial}] ))
您也可以尝试 the CSS visible
property.
创建一个本地试剂原子,然后根据该原子的状态呈现可点击的 div 或输入元素。
(defn click-me
[]
(let [clicked (reagent/atom false)]
(fn []
(if @clicked
[:input {:type "text"
:auto-focus true
:on-blur #(reset! clicked false)}]
[:div {:on-click #(reset! clicked true)}
"Click me."]))))
您可能需要将 on-click
添加到 :input
,这将提交数据,然后再次将 clicked
设置为 false。
创建一个 figwheel/cljs/clj 应用程序,当用户点击按钮时在前端工作 我想使用 reagent 在点击时将 span 变成可编辑的字段,我该怎么做?
我一直在阅读有关焦点切换的内容,并且 reagent/dom-node 但是鉴于我在网页上显示了 innerHTML aka "real values",我将如何设置 on-click=""本质上将光标移动到 innerhtml(跨度)之外的组件并使其可编辑并且光标开始闪烁。
谢谢大家
不确定你们是否想要代码片段,但是 得到了一个几乎包含以下内容的小部件:
{:type :plain-icon-button
:label [:i.ti-pencil-alt]
:tooltip "Click here to edit"
:attr {:tab-index -1}
:on-click (fn [] (prn "What do i do here :( ")}
再次感谢大家
一个简单的解决方案是同时显示两个字段,using the CSS property display: none;
切换它们,这样一次只有一个可见。在小嗝嗝中:
(:require
[garden.core :as garden]
[goog.style :as style]
[:div
[:button#mybtn {:display :initial}]
[:textfield#mytf {:display :none }]]
然后使用 {:onclick hide-btn}
(defn install-css [css-def]
(let [css-str (garden/css css-def)]
(style/installStyles css-str)
css-str))
(defn hide-btn []
(install-css [:#mybtn {:display :none }] )
(install-css [:#mytf {:display :initial}] ))
您也可以尝试 the CSS visible
property.
创建一个本地试剂原子,然后根据该原子的状态呈现可点击的 div 或输入元素。
(defn click-me
[]
(let [clicked (reagent/atom false)]
(fn []
(if @clicked
[:input {:type "text"
:auto-focus true
:on-blur #(reset! clicked false)}]
[:div {:on-click #(reset! clicked true)}
"Click me."]))))
您可能需要将 on-click
添加到 :input
,这将提交数据,然后再次将 clicked
设置为 false。