[英]jQuery-appended HTML elements do not pick up CSS styles with crate & clj-js
遇到一個相當有趣的問題。
作為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;
}
我在這里試過幾種箱子,包括defpartial,defhtml和相同的結果。 使用jayq或非包裝jquery的結果相同。 同樣,使用不同的jquery方法(inner,append,html等)。
我錯過了很明顯的東西嗎?
你能試一下嗎:
(-> (jquery "body")
(.append (crate/html [:h1.red "Test inside a jquery"]) ))))
由於您的函數調用僅用於副作用,因此您應該確保延遲評估不是問題:
(doto (jquery "body")
(.append (crate/html [:h1{:class "red"} "Test inside a jquery"])))
事實證明,潛在的問題是我的應用程序中有一個名為“get”的函數
(defn get [])
這可能與clojure.core / get有沖突。
刪除或重命名此功能可以解決問題並正確應用CSS。 很奇怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.