3

遇到一个相当有趣的问题。

生成为 html 并通过 jquery 插入页面的元素不会选择指定的样式。

样式在 HTML 中,但浏览器(Chrome、Firefox)根本不呈现它。

生成的 html 可以通过浏览器保存,打开的 HTML 文件确实应用了样式。

通过 javascript 直接(绕过 crate)或使用 clojurescript 中的显式 html 字符串生成的相同代码也具有正确的样式。

这似乎只是箱子生成的元素的问题。

例如:

(-> (jquery "body")         
  (.append (crate/html [:h1{:class "red"} "Test inside a jquery"]) ))))

红色类简单定义的地方:

.red {
color:red;
}

我在这里尝试了几种 crate 的变体,包括 defpartial、defhtml,结果相同。使用 jayq 或非包装 jquery 的结果相同。同样,使用不同的 jquery 方法(inner、append、html 等)。

我错过了一些非常明显的东西吗?

4

3 回答 3

3

你能试一下吗:

(-> (jquery "body")         
  (.append (crate/html [:h1.red "Test inside a jquery"]) ))))
于 2012-03-20T08:19:43.527 回答
1

由于您的函数调用只是为了副作用,您应该确保惰性评估不是问题:

(doto (jquery "body")
  (.append (crate/html [:h1{:class "red"} "Test inside a jquery"])))
于 2012-03-20T23:57:38.537 回答
0

结果发现根本问题是我的应用程序中有一个名为“get”的函数

(defn get [])

这可能与 clojure.core/get 冲突。

删除或重命名此函数可解决问题,并且 CSS 已正确应用。很奇怪。

于 2012-03-21T03:14:20.263 回答