Я создаю поле поиска, которое, когда вы вводите что-то в прозрачную кнопку, появляется там, где при нажатии будет очищаться то, что вы печатали. Кнопка очистки должна исчезнуть, когда вы потеряете фокус поля ввода, но вернитесь, если вы сфокусировались на поле ввода и внутри него что-то есть.
Функция не должна быть гибкой в том смысле, что структура разметки может изменяться, структура разметки должна быть такой. Просто нужно разместить разные селекторы.
Markup:
<div id="searchfield">
<div id="clearbutton"></div>
<input name="searchbox" type="text" id="searchbox">
</div>
Функция JavaScript: (Примечание: я использую jQuery)
function clearableSearchBox(searchbox, clearbutton) {
var searchbox = jQuery(searchbox);
var clearbutton = jQuery(clearbutton);
// When a user starts to enter into the textbox, fade in the clear button
searchbox.keydown(function() {
clearbutton.fadeIn('fast');
});
// When a user clicks the clear button, remove the contents of the searchbox
clearbutton.click(function() {
searchbox.val('');
});
// When the textbox is unfocused, fade out the clear button
searchbox.focusout(function() {
clearbutton.fadeOut('fast');
});
// If there's something in the search box, fade in the close button
searchbox.focusin(function() {
if(searchbox.val()) {
clearbutton.fadeIn('fast');
}
});
}
Наконец, когда вы хотите использовать функцию, вызовите ее:
clearableSearchBox("#searchbox", "#clearbutton");
Будем весьма благодарны за любые предложения по оптимизации / передовым методам. Большое спасибо!