如何使用clojurescript或om-next在dom元素上切换类

问题描述 投票:1回答:1

我是clojurescript的新手,我获得了一个创建过滤器的任务,只需单击加号图标就可以切换列表项要求。我写了CSS来隐藏类不活动时的代码,并显示它处于活动状态的时间。我只想知道正确的语法,如何使用clojurescript或om-next在单击时切换类。

或者是否有任何方法可以在单击同级/其他元素(h3)时切换(空/填充)列表数组。

我已经尝试过类似的事情。

[:h3 (:name aggregation) {:on-click #(swap! :className "dInline" "dNone")}]

这是实际代码。

(defn render-aggregation
    [{navigation-dimension :field :as aggregation} toggle-expanded rendered-filters]
        (let [show-expanded? (> (count (:values aggregation)) 8)]
            [:li {:key (str "k-" navigation-dimension)}
                 [:h3 (:name aggregation)]
                     (cond-> (into [:ul.list-unstyled] rendered-filters)
                         show-expanded?
                         (conj [:li
                             [:button.btn.btn-default.btn-xs {:on-click (toggle-expanded aggregation)}
                                 (if (:ui/expanded? aggregation) "show fewer" "show more")]]))]))

实际结果是h3元素在单击时应将其类更改为“ dNone”

javascript clojurescript om om-next
1个回答
0
投票

我可以想到两种利用香草JS的解决方案:

  1. 您可能会发现this答案很有帮助。它需要元素(您的h3)虽然有一个ID。
  2. 如果您不能拥有一个ID,则可能要使用JavaScript的this关键字,显然可以从ClojureScript(请参阅here)进行访问

我已经在一些练习代码中成功使用了方法1,但是对于ClojureScript和Web开发而言,我基本上是新手。请谨慎处理我的答案。

欢呼声

Oliver

© www.soinside.com 2019 - 2024. All rights reserved.