I_Love_Emma_Watson
@I_Love_Emma_Watson

Как сделать анфокус инпута при нажатии на любую область кроме инпут дропдауна?

Такой код jsfiddle
как сделать чтобы инпут анфокусился при нажатии мыши на любые области, кроме списка результатов, как это реализовано в поиске гугла например, я там сделал handleUnfocus для примера, только он конечно же работает при нажатии на любую область
  • Вопрос задан
  • 301 просмотр
Пригласить эксперта
Ответы на вопрос 1
@vaskadogana
Frontend developer
https://github.com/tj/react-click-outside
или

handleClick() {
	    if (!this.state.active) {
	      // attach/remove event handler
	      document.addEventListener('click', this.handleOutsideClick, false);
	    } else {
	      document.removeEventListener('click', this.handleOutsideClick, false);
	    }
	    this.setState(prevState => ({
	       active: !prevState.active,
	    }));
	}
	handleOutsideClick(e) {
	    // ignore clicks on the component itself
	    console.log('EVENT handleOutsideClick ', e)
	    if (this.node.contains(e.target)) {
	    	
	      return;
	    }
	    
	    this.handleClick();
	}


на элемент за пределами которого кликают добавить ref
ref={node => { this.node = node; }}

<li className='notif_container' ref={node => { this.node = node; }}>
						{this.button()}
					</li>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы