Я показываю поле поиска на некотором текстовом клике и скрываю его при разрыве поиска.stopImmediatePropagation() of sibling not working
Но если я нажму на кнопку поиска, я не хочу скрыть поле ввода и не дать ему скрыться (из-за размытия). Я пробовал stopImmediatePropagation()
без везения.
Вот код:
// Not working. when search button is pressed, disable hiding the search input
$('.search-contacts-container > button').on('click touchstart', function(e) {
alert('xxx');
e.stopImmediatePropagation();
})
// when search input is blurred, hide it
$('#search-contacts').on('blur', function() {
$('.search-contacts-container').addClass('visuallyhidden');
$('#search-contacts').attr('required', 'false').blur();
})
// when search input is focused, show it
$('#search-contacts').on('focus', function() {
$('.search-contacts-container').removeClass('visuallyhidden');
$('#search-contacts').attr('required', 'true');
})
// on search text click, show the search input
$('.js-show-search').on('click touchstart', function() {
if ($('.search-contacts-container').is('.visuallyhidden')) {
$('.search-contacts-container').removeClass('visuallyhidden');
$('#search-contacts').attr('required', 'true').focus();
} else {
$('.search-contacts-container').addClass('visuallyhidden');
$('#search-contacts').attr('required', 'false').blur();
}
})
HTML:
<span class="js-show-search" title="Search for contacts">Search</span>
<form action="search" method="post" class="form-search search-contacts-container visuallyhidden">
<input type="text" id="search-contacts" placeholder="Search" required="false" />
<button type="submit" class="form-search__button" title="Search"></button>
</form>
Демо: http://jsfiddle.net/un775/
Любые идеи?
'sstopImmedediatePropagation' не препятствует событию' blur', он предотвращает появление событий 'click' и' touchstart' на кнопке. –
'>' - это непосредственный селектор потомков. В вашем случае кнопка не в – Satpal
@ Кнопка Satpal является потомком .search-contacts-container ('