Элементы HTML, добавленные в jQuery, не используют CSS-стили с помощью crate & clj-js - PullRequest
3 голосов
/ 20 марта 2012

Встретиться с довольно интересной проблемой.

Элемент, сгенерированный как html и вставленный на страницу через jquery, не подхватывает назначенные стили.

Стиль в HTML, но браузер (Chrome, Firefox) не отображает его вообще.

Сгенерированный html может быть сохранен через браузер, а HTML-файл при открытии ДОЛЖЕН иметь применяемый стиль.

Тот же самый код, сгенерированный с помощью javascript напрямую (в обход ящика) или с использованием явногоСтрока html из clojurescript также имеет правильный стиль.

Кажется, это проблема только с элементами, сгенерированными ящиком.

например:

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

Где красный класс просто определяет:

.red {
color:red;
}

Я пробовал несколько вариантов ящика здесь, включая defpartial, defhtml с теми же результатами.Те же результаты, используя jayq или неупакованный jquery.Точно так же, используя различные методы jquery (inner, append, html и т. Д.).

Я что-то упускаю очень очевидное?

Ответы [ 3 ]

3 голосов
/ 20 марта 2012

Можете ли вы попробовать:

(-> (jquery "body")         
  (.append (crate/html [:h1.red "Test inside a jquery"]) ))))
1 голос
/ 21 марта 2012

Поскольку ваш вызов функции только для побочных эффектов, вы должны убедиться, что ленивая оценка не является проблемой:

(doto (jquery "body")
  (.append (crate/html [:h1{:class "red"} "Test inside a jquery"])))
0 голосов
/ 21 марта 2012

Оказывается, основная проблема заключалась в том, что в моем приложении была функция "get"

(defn get [])

Что может конфликтовать с clojure.core / get.

Удаление или переименование этой функции решает проблему, и CSS применяется правильно. Очень странно.

...