Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 09.09.2012, 18:55
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от cyber
но либо так, но для этого нужно лезть в код=)
переделывая div под ссылку, тоже нужно лезть в код
Ответить с цитированием
  #22 (permalink)  
Старый 09.09.2012, 19:14
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

Сделал по другому.
Вернул весь код в прежнее состояние, удалил
href="#"
у ссылок в коде. Сейчас все работает отлично Всем большое спасибо за помощь
Ответить с цитированием
  #23 (permalink)  
Старый 09.09.2012, 20:25
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

Блин, опять косяк нашел. На панели есть форма входа. При фокусе на инпутах закрывается панель
Ответить с цитированием
  #24 (permalink)  
Старый 09.09.2012, 21:28
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

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

Сообщение от cyber
ну так в хтмл проще=)
исправить html, css + js, когда обращение идёт по имени тега
Ответить с цитированием
  #26 (permalink)  
Старый 09.09.2012, 22:47
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

как то так
UP подправил код
<!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>
    <script>
      function _(selector) {//функия для удобства написания примера, копипастить не нужно:)
      
      return document.querySelectorAll(selector)[0];
      
      }
      
      !function (){
      
      var elem = _("#block"), focusForElem;
      
      if (elem.addEventListener){ 
      
      elem.addEventListener('focus' , onFocus,true);
      
      document.addEventListener('focus',onDocumentFocus,true); 
    
      } else {
      
      elem.onfocusin = onFocus;
      document.onfocusin = onDocumentFocus;
    
      }
      
      function onFocus(e) {
      
       _("#inform").innerHTML = 'focus on '+ this.id;
        
        
        focusForElem = true;
        event.cancelBubble = true;
      }
      
        function onDocumentFocus () {
        
          if (focusForElem) {
            focusForElem = false;
            onBlur();
          }
        }
      function onBlur() {
      
      
      _("#inform").innerHTML = 'focus on '+ this;
      
      }
      }();
    </script>

  </body>
</html>

Работает в ие 6+ без функции _() (должно ,не пробывал), в ие8+ точно работает

П.с более гуманного решение не придумал, но может оно и есть так как код писал после того как проснулся=)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.

Последний раз редактировалось cyber, 09.09.2012 в 23:05.
Ответить с цитированием
  #27 (permalink)  
Старый 10.09.2012, 03:04
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

а как насчет инпутов, которые находятся внутри панели. Можно ли сделать условие, если берет на себя фокус любой из инпутов панели, то закрытие панели по blur не происходит, а если теряет фокус один из инпутов панели, то панель приобретает фокус для нормального закрытия панели по blur? Пробовал через if() написать выполнение функции закрытия панели по blur, но не могу сформулировать условие 'если берет фокус тег input панели #toppanel, то...'. Пробовал через $('#toppanel').not('#toppanel input').blur() - тоже ничего не выходит. Либо панель не открывается либо панель закрывается при фокусе на любом из инпутов панели
Ответить с цитированием
  #28 (permalink)  
Старый 10.09.2012, 09:37
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от zevilz Посмотреть сообщение
а как насчет инпутов, которые находятся внутри панели. Можно ли сделать условие, если берет на себя фокус любой из инпутов панели, то закрытие панели по blur не происходит, а если теряет фокус один из инпутов панели, то панель приобретает фокус для нормального закрытия панели по blur? Пробовал через if() написать выполнение функции закрытия панели по blur, но не могу сформулировать условие 'если берет фокус тег input панели #toppanel, то...'. Пробовал через $('#toppanel').not('#toppanel input').blur() - тоже ничего не выходит. Либо панель не открывается либо панель закрывается при фокусе на любом из инпутов панели
можно , но не нужно .
если не нужна поддержка ИЕ меньше 9 , то кож можно сократить
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #29 (permalink)  
Старый 10.09.2012, 11:38
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

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

сделал просто интерфейс, думаю комментарии не нужны
<!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>

    <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>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с панелью вкладок в окне 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