English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Deseja implementar a função: quando o campo de entrada perde o foco e não é clicado o botão de limpeza, execute o método reset para redefinir o estilo do campo de entrada, quando clicar no botão de limpeza, execute o método clear para limpar o conteúdo do campo de entrada.
如图
Eu queria implementar isso com o seguinte código
$(".search-input").focusout(function () { if (document.activeElement.className !== 'close-t') {//close-t é o nome da classe do botão de limpeza $('.search-input').addClass('search-before'); $('.close').css('display', 'none'); document.getElementById('search').value = ''; } });
Além disso, quando o campo de entrada perde o foco, o primeiro a obter o foco é a tag body, por isso, este método não funciona, e, finalmente, o seguinte código é usado para implementar essa função
$("#search").focusout(function () { //Verifique se foi clicado no botão de limpeza após a perda de foco, se for, não redefina var tapCloseButton = false; $('.close-t').focus(function () { tapCloseButton = true; }); setTimeout(function () { if (!tapCloseButton) { $('.search-input').addClass('search-before'); $('.close').css('display', 'none'); document.getElementById('search').value = ''; } ,10); });
A operação de julgamento da focagem é adiada, portanto, neste momento, o foco já foi removido do body e colocado no elemento realmente clicado, e então julgue a focagem novamente, para ver se é a tecla de limpeza.
Aqui está a implementação completa do método de�断定在chrome下点击input标签还是其他标签,由小编分享给大家,希望能给大家提供一个参考,也希望大家多多支持呐喊教程。