Показать сообщение отдельно
  #6 (permalink)  
Старый 11.11.2014, 16:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

дубль два добавлено отключение слежения при пустом списке.
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .orange {
    background: #FFCC00;
  }
  .orange + div{
    display: block;
  }
  span {
     cursor: pointer;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     jQuery.fn.hide_by_click = (function() {
         var arrSelector = [],
         tracking = function(event) {
             $.map(arrSelector, function(el) {
                 if (event.target != el && !$(el).has(event.target).length) $(el).fadeOut()
             })

         }
         return function(add) {
            $(document).off({'click' : tracking });
             this.each(function(indx, el) {
                 if (add) arrSelector.push(el);
                 else {
                     var indx = $.inArray(el, arrSelector);
                     if (indx != -1) arrSelector.splice(indx, 1)
                 }
             });
            arrSelector.length && $(document).on({'click' : tracking });
            return this
         }
     }())

     $(function() {

         $(".block_info_main span").hide_by_click(true); //добавить все span для контроля
         $(".orange").hide_by_click(false); // убрать оранжевый из списка слежения
     });
  </script>
</head>

<body>
<div class='block_info_main' id='test'>1111


<div class='first'>
<span class='info orange'>Информация</span>
<div class='main'>
<span class='info_show show '>текст1</span>
</div>
</div>
<div class='first'>
<span class='info'>Информация2</span>
<div class='main'>
<span class='info_show '><b style="color: rgb(51, 51, 255)">текст2</b></span>
</div>
</div>
<div class='first'>
<span class='info'>Информация3</span>
<div class='main'>
<span class='info_show '>текст3</span>
</div>
</div>

</div>


</body>

</html>
Ответить с цитированием