Я использую enfocus для манипуляции dom в ClojuseScript.Обработка событий в enfocus (clojurescript) не работает
У меня есть обработчик событий:
(ns numeros-linguas.script
(:require [enfocus.core :as ef]
[enfocus.events :as ev])
(:require-macros [enfocus.macros :as em]))
(defn aviso-seleciona []
(ef/at "select" (ev/listen :change
(fn [evt]
(let [lingua-id (ef/from [:select] (ef/get-prop :value))
lingua-selector (str "#" lingua-id)
cores (array "azul" "vermelho" "laranja" "verde")
linguas-visiveis (when-let [r (ef/from [:#resultado :> :div.visivel] (ef/get-attr :id))]
(-> r
list
flatten))]
(ef/at "#resultado" (ef/append (ef/from lingua-selector identity)))
(ef/at lingua-selector (ef/remove-class "invisivel"))
(ef/at lingua-selector (ef/add-class "visivel"))
(map #(do
(ef/at (str "#" %)
(ef/add-class %2))
(map (fn [cor]
(ef/at (str "#" %)
(ef/remove-class cor)))
(remove #{%2} cores)))
linguas-visiveis cores))))))
(set! (.-onload js/window)
aviso-seleciona)
Хитрая часть находится в карте. Я хочу удалить некоторые классы CSS из некоторых элементов div и добавить некоторые другие элементы. Но это не работает. Все остальные элементы в форме работают, кроме этого. Но если я копирую и вставляю форму в реплику, связанную с этой страницей, и запускаю код, он работает так, как ожидалось. Я попытался прокомментировать части кода, чтобы понять, что происходит, но без надежды.