2015-10-13 7 views
0

Я пытаюсь написать многократное управление тегами с помощью реагента. Что мне нужно сделать, это сосредоточить поле ввода после того, как пользователь нажмет на элемент div предка div. Чтобы быть более ясным, я хотел бы задать фокус на ввод с классом tag-input после того, как пользователь нажмет на div с классом form-element Как это реализовать?Как передать фокус из одного элемента в другой в реагенте (Clojurescript)?

[:div.form-element 
    [:div.some-other-class 
    [:ul 
     [:li "entered-tag"] 
    ] 
    ] 
    [:input.tag-input {:type "text"}] 
] 
+0

На самом деле может быть лучшей идеей сделать ярлыки с интерактивными элементами для атрибутов и вообще не обращаться к этому в clojurescript. – rojoca

ответ

1

вы должны выполнить некоторые OLDSCHOOL обработки щелчка я предполагаю:

[:div.form-element 
    {:on-click #(do (println :click-click) 
        (.focus (.getElementById js/document "my-input")))} 
    [:div.some-other-class 
    [:ul [:li "entered-tag"]]] 
    [:input.tag-input {:type "text" :id "my-input"}]] 

так что вы, вероятно, следует создать некоторую заводскую функцию для этого элемента формы материал:

(defn form-element [id] 
    [:div.form-element 
    {:on-click #(.focus (.getElementById js/document id))} 
    [:div.some-other-class 
     [:ul [:li "entered-tag"]]] 
     [:input.tag-input {:type "text" :id id}]]) 

и использовать его например:

[:div 
    (form-element "form-element-1") 
    (form-element "form-element-2")] 

отлично работает для меня

 Смежные вопросы

  • Нет связанных вопросов^_^