Здравствуйте!
Имеется блок со следующей структурой:
<span class="input input_has-clear">
<span class="input__box">
<input class="input__control" type="text" value="">
</span>
</span>
Необходимо после
.input__control добавить новый элемент с классом
.input__clear. При вводе данных в текстовое поле к динамически созданному элементу
.input__clear нужно добавить дополнительный класс
.input__clear_visible и удалить данный класс, если поле становится пустым.
Задачу
решаю так:
$(function() {
// Добавляем новый элемент
$(".input_has-clear").append("<i class='input__clear'>");
// Если поле не является пустым
if($(".input_has-clear").val() != "") {
// Добавляем/удаляем класс
$(this).find(".input__clear").toggleClass("input__clear_visible");
}
});
Проблема в том, что первая строка с добавлением элемента прекрасно работает, а вот условие выполняться не хочет, как его ни крутил: были попытки оборачивать услевие в события
change и
focus. Не подскажете, как решить задачу? Сам пока постигаю "азы", собирая собственную CSS-библиотеку компонентов на основе БЭМ.
Спасибо!