Я пытаюсь использовать выпадающий список UIkit, но с javascript, а не с атрибутом uk-dropdown="target: #my-id"
(defn uk-drop []
[:div
[:div#my-id {:data-uk-dropdown true} "Some content"]
[:button
{:on-click #(.show (.dropdown js/UIkit "#my-id"))}
"Open"]
[:button
{:on-click #(.hide (.dropdown js/UIkit "#my-id"))}
"Close"])
К сожалению, это работает только один раз. Таким образом, он показывает раскрывающийся список, а затем скрывает его (или, может быть, только щелчок закрывает его, а не метод), но он не будет открывать его снова. Если я попробую его из консоли Chrome с UIkit.dropdown("#category1").show()
, он снова будет работать, но не из обработчика нажатия реагента. Любая помощь приветствуется.
Другая версия, которую я попробовал после комментария:
(defn uk-drop []
(let [the-drop (atom nil)]
(fn []
[:div
[:div#my-id {:data-uk-dropdown true} "Some content"
[:button
{:on-click #(reset! the-drop (.dropdown js/UIkit "#my-id"))}
"Make dropdown"]
[:button
{:on-click #(.show @the-drop)}
"Open"]
[:button
{:on-click #(.hide @the-drop)}
"Close"]]])))