Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 10.09.2012, 12:56
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

а да забыл

Focus_and_Blur({
        elem:document.getElementById('block'),
        focus:function (e) {
          //this == elem
          //e - обьект события
          _("#inform").innerHTML = 'focus on '+ this.id;

        },
        blur: function (e) {
         //this == elem
          //e - обьект события
         _("#inform").innerHTML = 'blur  '+ this.id;
        }
      });

комменты=)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #32 (permalink)  
Старый 10.09.2012, 13:04
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<div id="div" style="position: fixed; top: 10px; left: 5px; outline-style: none; z-index: 100">
	<a href="#">open</a>
	<div style="display: none">
		<input><br>
		<input>
	</div>
</div>
<div></div>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

<script>
window.onload = function () {
	var div = document.getElementById('div');
	
	div.onclick = function (e)  {
		e = e || event;
		var target = e.target || e.srcElement;
		if (target == this.children[0]) {
			var next = target.nextSibling.nextSibling; 
			if (next.style.display != 'block') {
				next.style.display = 'block';
				target.innerHTML = 'close';
				div.nextSibling.nextSibling.style.cssText = 'position: fixed; left: 0px; top: 0px; height: 100%; width: 100%; z-index: 99';
			} else {
				next.style.display = 'none';
				target.innerHTML = 'open';
				div.nextSibling.nextSibling.style.cssText = '';
			}
		}
	}
	
	div.nextSibling.nextSibling.onclick = function () {
		div.children[1].style.display = 'none';
		div.children[0].innerHTML = 'open';
		this.style.cssText = '';
	}
	
	
	
}
</script>
Ответить с цитированием
  #33 (permalink)  
Старый 10.09.2012, 13:16
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

bes,снала сделай фокус на инпут в блоке , а потом табом переключай
у меня сработает blur
<!DOCTYPE HTML>
<html>
  <head>
  <style>
    #block {
      width:200px;
      height:200px;
      border:4px solid red;
    
    
    } 
    body {
    
      border:2px solid black;
    
    
    }
    
    </style>
  </head>
  <body tabindex='-1'>
    
    <div tabindex='-1' id='block'>
      wereasrwer
    <input type='text'>
      <div>
       <input type='text'> 
      </div>
    </div>
    
 <div id='inform'></div>
<input type='text'>
    <script>
      function _(selector) {//функия для удобства написания примера, копипастить не нужно:)
      
      return document.querySelectorAll(selector)[0];
      
      }
      
      function Focus_and_Blur(opt){
      
      var elem = opt.elem, focusForElem;
      
      if (elem.addEventListener){ 
      
      elem.addEventListener('focus' , onFocus,true);
      
      document.addEventListener('focus',onDocumentFocus,true); 
    
      } else {
      
      elem.onfocusin = onFocus;
      document.onfocusin = onDocumentFocus;
    
      }
      
      function onFocus(e) {
      
        focusForElem = true;
        event.cancelBubble = true;
        opt.focus.call(this,e);
      }
      
        function onDocumentFocus (e) {
        
          if (focusForElem) {
            focusForElem = false;
            opt.blur.call(elem,e)
          }
        }
      
      };
      
  //пример вызова,  в саму функцию лучше не лезть     
      Focus_and_Blur({
        elem:document.getElementById('block'),
        focus:function () {
         
          _("#inform").innerHTML = 'focus on '+ this.id;

        },
        blur: function () {
        
         _("#inform").innerHTML = 'blur  '+ this.id;
        }
      });
    </script>

  </body>
</html>

а у тебя блок не скроется
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body style='border:1px solid black;'>
    <div>
    <div>
<div id="div" style="position: fixed; top: 10px; left: 5px; outline-style: none; z-index: 100">
	<a href="#">open</a>
	<div style="display: none">
		<input><br>
		<input>
	</div>
</div>
<div></div>
    </div>
    </div> 
    
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 <input type='text'> 
<script>
window.onload = function () {
	var div = document.getElementById('div');
	
	div.onclick = function (e)  {
		e = e || event;
		var target = e.target || e.srcElement;
		if (target == this.children[0]) {
			var next = target.nextSibling.nextSibling; 
			if (next.style.display != 'block') {
				next.style.display = 'block';
				target.innerHTML = 'close';
				div.nextSibling.nextSibling.style.cssText = 'position: fixed; left: 0px; top: 0px; height: 100%; width: 100%; z-index: 99';
			} else {
				next.style.display = 'none';
				target.innerHTML = 'open';
				div.nextSibling.nextSibling.style.cssText = '';
			}
		}
	}
	
	div.nextSibling.nextSibling.onclick = function () {
		div.children[1].style.display = 'none';
		div.children[0].innerHTML = 'open';
		this.style.cssText = '';
	}
	
	
	
}
</script>
  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #34 (permalink)  
Старый 10.09.2012, 13:45
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от cyber
bes,снала сделай фокус на инпут в блоке , а потом табом переключай
у меня сработает blur
а оно надо?
Ответить с цитированием
  #35 (permalink)  
Старый 10.09.2012, 13:48
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от bes Посмотреть сообщение
а оно надо?
а хрен его знает, я просто сказал что может не работать и все ..
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #36 (permalink)  
Старый 10.09.2012, 13:52
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

вот так без дополнительного клика
<div id="div" style="position: fixed; top: 10px; left: 5px; z-index: 100">
	<a href="#" onclick="return false">open</a>
	<div style="display: none">
		<input><br>
		<input>
	</div>
</div>
<div></div>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input onclick="alert('input')">

<script>
window.onload = function () {
	var div = document.getElementById('div');
	
	div.onclick = function (e)  {
		e = e || event;
		var target = e.target || e.srcElement;
		if (target == this.children[0]) {
			var next = target.nextSibling.nextSibling; 
			if (next.style.display != 'block') {
				next.style.display = 'block';
				target.innerHTML = 'close';
				div.nextSibling.nextSibling.style.cssText = 'position: fixed; left: 0px; top: 0px; height: 100%; width: 100%; z-index: 99';
			} else {
				next.style.display = 'none';
				target.innerHTML = 'open';
				div.nextSibling.nextSibling.style.cssText = '';
			}
		}
	}
	
	div.nextSibling.nextSibling.onclick = function (e) {
		e = e || event;
		div.children[1].style.display = 'none';
		div.children[0].innerHTML = 'open';
		this.style.cssText = '';
		var elem = document.elementFromPoint(e.clientX, e.clientY);
		elem.focus();
		elem.click();
	}
	
}
</script>
Ответить с цитированием
  #37 (permalink)  
Старый 10.09.2012, 13:56
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Имхо :с фокусом проще=)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #38 (permalink)  
Старый 10.09.2012, 15:59
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

У меня не работает ни один из примеров. Где-то я похоже косячу
Ответить с цитированием
  #39 (permalink)  
Старый 10.09.2012, 16:02
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

браузер IE?
Ответить с цитированием
  #40 (permalink)  
Старый 10.09.2012, 16:05
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от bes Посмотреть сообщение
браузер IE?
моя в ие работает 8+ (точно), 6 + (должна, не пробывал)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с панелью вкладок в окне Eugent ExtJS 0 27.07.2012 15:19
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47