首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用clojurescript或om-next在dom元素上切换类

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

Stack Overflow用户
提问于 2019-08-27 13:35:26
回答 1查看 345关注 0票数 1

我是clojurescript的新手,我的任务是创建一个过滤器,并在点击加号图标时切换列表项要求。我已经编写了css,当类处于非活动状态时隐藏,而当它处于活动状态时显示。我只想知道正确的语法,如何使用clojurescript或om-next在单击时切换类。

或者,有没有办法在单击兄弟元素/其他元素(h3)时切换(空/填充)列表数组。

我试过这样的东西。

代码语言:javascript
复制
[:h3 (:name aggregation) {:on-click #(swap! :className "dInline" "dNone")}]

这是实际的代码。

代码语言:javascript
复制
(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

EN

回答 1

Stack Overflow用户

发布于 2019-12-05 18:16:52

我可以想到两个利用vanilla JS的解决方案:

  1. 你可能会发现this answer很有帮助。不过,它要求元素(您的h3)有一个ID。
  2. 如果您没有ID,则可以使用JavaScript的this关键字,该关键字显然可以从ClojureScript访问(请参阅here)

我已经在我的一些练习代码中成功地使用了方法#1,但我对ClojureScript和Web Development一般的…还是个新手请谨慎处理我的回答。

干杯

奥利弗

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57668213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档