Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2015, 01:24
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

onblur и onfocus
Подскажите не могу разобраться.
Как скрыть div при клике в любое место кроме самого div

<div>123</div>


Заранее спасибо

Прошу прощения что не правильно назвал тему, вначале хотел по другому задать вопрос
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2015, 02:07
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title></title>
</head>
<body>
  <div>123</div>
  <script>
    var div = document.getElementsByTagName('div')[0];

    document.addEventListener('click', function(e) {
      var target = e.target;
      if(target == div) return;
      div.style.display = "none";
    });
  </script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2015, 08:33
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Вижу тут все работает, и если к себе переношу в таком примере работает.

Но проблема в том что у меня есть input в который я начинаю вводить название городе и у меня снизу в div ajax'ом открывается всплывающая подсказка городов.

И вот мне надо когда div.style.visibility = 'visible' - при нажатии на любое место на сайте кроме этого div что бы он становился hidden, но разумеется после того как в него подгрузятся города.

А у меня он пропадает даже если я нажимаю на сам div

Делаю вот так:
<input id="city" name="city" size="30" autocomplete="OFF" onkeyup='PressKey(event)'/><br>
<div id="info" size=5 style='position:absolute;z-index:999;visibility:hidden'
	onchange="document.getElementById('city').value=this.options[this.selectedIndex].value"
	onkeyup='PressKey2(event)'>
</div>

<script>
    var div = document.getElementById('info');
	 
	    document.addEventListener('click', function(e) {
	      var target = e.target;
	      if(target == div) return;
	      div.style.visibility = "hidden";
	    });
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2015, 16:51
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Так?
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title></title>
</head>
<body>
  <input id="city" size="30" /><br>
  <div id="info"></div>
  <script>
    var div = document.getElementById('info'),
        input = document.getElementById('city');

    input.addEventListener('keyup', function() {
      div.innerHTML = this.value;
    });

    input.addEventListener('focus', function(e) {
      div.style.visibility = "visible";
    });

    input.addEventListener('blur', function(e) {
      div.style.visibility = "hidden";
    });
  </script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onfocus & onblur Grigor.918 Элементы интерфейса 7 06.08.2014 14:33
Подскажите по onblur и onfocus marad Элементы интерфейса 13 13.12.2013 00:49
fucus() в обработчике onblur rgl Events/DOM/Window 3 05.02.2013 16:03
Неверно работает OnBlur и, как следствие - OnFocus motoriton Firefox/Mozilla 0 10.08.2012 09:06
Chrome checkbox onfocus onblur Spice (X)HTML/CSS 0 27.10.2011 17:34