Kri*_*son 3 clojure clojurescript
我试图隐藏ClojureScript中的一个元素,更具体地说是Dommy库.这是我到目前为止所得到的:
ClojureScript:
(ns fucking_about
(:require
[dommy.utils :as utils]
[dommy.core :as dommy])
(:use-macros
[dommy.macros :only [node sel sel1]]))
(map dommy/toggle! (sel :.hide))
Run Code Online (Sandbox Code Playgroud)
HTML:
<html>
<head><title></title></head>
<body>
<ul>
<li class="show">Derp</li>
<li class="hide">Herp</li>
<li class="show">ies!</li>
</ul>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是在浏览器中打开网站时我没有得到任何结果,我不明白为什么:<我在Github页面之外找不到任何关于ClojureScript的文档.
小智 10
事情是map返回一个懒惰的元素序列.懒惰的序列是你可以得到的某种未实现的承诺.您希望序列产生一些副作用.为了使它工作,你只需要实现它.
问题是微不足道的.你有两个选择:
1)使用doall函数实现你的懒惰序列,如:
(doall (map dommy/toggle! (sel :.hide)))
Run Code Online (Sandbox Code Playgroud)
这正是目标doall:遍历整个序列并强制任何可能的效果.
2)doseq用于产生副作用的用途,如:
(doseq [el (sel :.hide)]
(dommy/toggle! el))
Run Code Online (Sandbox Code Playgroud)
就这样!两种方式都应该得到相同的结果.
还有其他问题吗?