Jquery щелкните за пределами элемента, чтобы скрыть другой элемент
Haai. У меня проблема. Как скрыть эту кнопку, когда я нажимаю за пределами <input type="search">
, button
покажи, когда я нажму <input type="search">
но я не знаю, как скрыть кнопку, когда мы нажимаем за пределами <input type="search">
, Любая идея?
HTML
<input type="search">
<button type="submit" class="search_btn" name="button">Search</button>
Jquery
$("input[type='search']").click(function() {
$(".search_btn").addClass("search_on");
});
$("*:not('input[type='search']')").click(function() {
$(".search_btn").removeClass("search_on");
});
5 ответов
Использование removeClass
$(document).on('click', function(event) {
if (event.target.id !== 'submitButton' && event.target.id !== "search") {
$(".search_btn").removeClass("search_on");
}
})
$("input[type='search']").on({
click: function() {
$(".search_btn").addClass("search_on");
}
});
$("#submitButton").click(function() {
console.log($("#search").val())
})
.search_btn {
display: none
}
.search_on {
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="search" id="search">
<button type="submit" id="submitButton" class="search_btn" name="button">Search</button>
Вы ищете blur
событие. Когда вы нажимаете на input
, он получает focus
, когда вы выходите (нажав, взаимодействие с клавиатурой и т. д.), он теряет фокус и вызывает blur
, Так:
$("input[type='search']").blur(function () {
$(".search_btn").removeClass("search_on");
})
Также может быть хорошей идеей использовать focus
событие вместо click
в строке 1, чтобы пользователи могли также вкладываться в поле и работать правильно:
$("input[type='search']").focus(function() {
$(".search_btn").addClass("search_on");
})
$("input[type='search']").blur(function () {
$(".search_btn").removeClass("search_on");
});
Смотрите также:
Скорее всего, то, что вы хотите, может быть достигнуто с focus
а также blur
События.
$("input[type='search']").focus(function() {
$(".search_btn").addClass("search_on");
});
$("input[type='search']").blur(function() {
setTimeout(function () {
$(".search_btn").removeClass("search_on");
}, 50);
});
Вам понадобится тайм-аут, чтобы позволить кнопке все еще нажиматься, поскольку нажатие кнопки приведет к размытию ввода.
Используя фокус события и размытие:
$("input[type='search']").focus(function() {
$(".search_btn").addClass("search_on");
})
$("input[type='search']").blur(function () {
$(".search_btn").removeClass("search_on");
});
Ты можешь использовать focus
а также blur
События. Когда элемент управления находится внутри текстового поля, focus
событие называется. Когда элемент управления покидает текстовое поле, blur
событие называется.
$(document).ready(function() {
$("input[type='search']").focus(function() {
$("button[type='submit'].search_btn").addClass("search_on");
})
$("input[type='search']").blur(function () {
$("button[type='submit'].search_btn").removeClass("search_on");
});
});
.search_on { background-color: yellow; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="search">
<button type="submit" class="search_btn" name="button">Search</button>