English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
기능을 구현하고 싶습니다: input 박스가 맥락을 잃었을 때, 지우기 키를 클릭하지 않았을 때는 reset 메서드를 호출하여 input 스타일을 재설정하고, 지우기 키를 클릭했을 때는 clear 메서드를 호출하여 input 내용을 지웁니다.
如图
이렇게 코드를 통해 실현하려고 했습니다
$(".search-input").focusout(function () { if (document.activeElement.className !== 'close-t') {//close-t가 지우기 키 클래스 이름입니다 $('.search-input').addClass('search-before'); $('.close').css('display', 'none'); document.getElementById('search').value = ''; } });
다른 발견이 있었지만, input 상자에서 포커스를 잃은 후, 먼저 포커스를 받은 것은 body 태그였습니다. 이렇게 되어 이 방법은 효과적이지 않았으며, 이 기능을 구현하기 위해 다음 코드를 사용했습니다.
$("#search").focusout(function () { //다음을 클릭했는지 확인하여, 그렇다면 다시 설정하지 않습니다. 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); });
포커스�断정 이 단계를 지연 실행하므로, 이제 포커스는 body에서 실제로 클릭한 요소로 이동했습니다. 이제 포커스를 다시�断정하여, 지우기 키인지 확인합니다.
이 chrome에서 input에 태그를 클릭했는지 다른 태그를 클릭했는지 확인하는 방법은 저가 공유한 모든 내용입니다. 이를 통해 도움이 되길 바라며, 많은 지지를 부탁드립니다. 나우알 강의.