почему если input не в фокусе, кнопка не пропадает?
Если input в фокусе, то кнопка должна появиться. Если фокус с input пропал, то кнопка должна пропасть. Не могу понять, почему не работает
$input = $('.search__input');
$submit = $('.search__button');
$submit_active = 'search__button_active';
$input.on('click', function() {
if ($input.is(':focus')) {
$submit.addClass($submit_active);
} else {
$submit.removeClass($submit_active);
}
});
.search__button {
display: none;
}
.search__button_active {
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="search">
<input type="text" class="search__input">
<button class="search__button" type="submit">Найти</button>
</div>
Ответы (3 шт):
Автор решения: Zhihar
→ Ссылка
А зачем вам JQuery?
Тут чистый css
.search__input + .search__button {
display: none;
}
.search__input:focus + .search__button {
display: inline-block;
}
<div class="search">
<input type="text" class="search__input">
<button class="search__button" type="submit">Найти</button>
</div>
Автор решения: Zhihar
→ Ссылка
Ну раз вам нужен jquery - используйте то, что jquery вам дает нахаляву -
https://api.jquery.com/focusin/
https://api.jquery.com/focusout/
и используйте специализированные функции
$input = $('.search__input');
$submit = $('.search__button');
$submit_active = 'search__button_active';
$input.focusin(function() {
$submit.addClass($submit_active);
});
$input.focusout(function() {
$submit.removeClass($submit_active);
});
.search__button {
display: none;
}
.search__button_active {
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="search">
<input type="text" class="search__input">
<button class="search__button" type="submit">Найти</button>
</div>
Автор решения: InDevX
→ Ссылка
Можно использовать события focus/blur
$input = $('.search__input');
$submit = $('.search__button');
$submit_active = 'search__button_active';
$input.on('focus blur', function() {
$submit.toggleClass($submit_active);
});
.search__button {
display: none;
}
.search__button_active {
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="search">
<input type="text" class="search__input">
<button class="search__button" type="submit">Найти</button>
</div>