簡體   English   中英

附加jQuery的HTML元素不會使用crate&clj-js獲取CSS樣式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM