Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2017, 03:34
Аспирант
Отправить личное сообщение для Agapkin Посмотреть профиль Найти все сообщения от Agapkin
 
Регистрация: 14.05.2016
Сообщений: 33

Клик по родителю
ГУРУ! Помогите пожалуйста, я дилетант в этом.

Есть три div блока в каждом из которых лежат div с менюхой.

Надо:
1)при клике на один из, чтобы всплывало меню
2)при клике на другой везде закрывалось и открывалось текущее
3)при клике на родителя с открытым меню , чтобы оно закрывалось

Проблема заключается в том что при клике на дочку , т.е. на менюху , она блин закрывается.

помогите плиз .

пробовал запихать event.target - работает коряво, то закрывает то нет, я так понял, в родителе лежит менюха и иконка , если по иконки попадаешь не закрывается почему то менюха, мимо вроде закрывается , короче я хз , помогите плиз , всю голову сломал


https://jsfiddle.net/z1xo04ww/1/
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2017, 09:17
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

https://jsfiddle.net/ycyL32sy/

Последний раз редактировалось Alexandroppolus, 10.03.2017 в 09:22.
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2017, 12:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Agapkin,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .leftmenu.block{
margin-top:15px;
width:100px;
height:100px;
background:green;
display:block;
position: relative;
}
.lalala {
  display: none;
}
.leftmenu.block.open-block-leftmenu .lalala {
    position: absolute;
    display: block;
    top: 50px;
    left: 100%;
    width: 100px;
    height: 100px;
    background: red;
}
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
  var leftmenu = $(".leftmenu");
  leftmenu.on("click",function(event) {
  if($(event.target).is(".lalala")) return;
  leftmenu.not($(this).toggleClass("open-block-leftmenu"))
  .removeClass("open-block-leftmenu")
})
});
  </script>
</head>

<body>
<div class="leftmenu block">
  <div class="lalala">
  </div>
</div>
<div class="leftmenu block">
  <div class="lalala">

  </div>
</div>
<div class="leftmenu block">
  <div class="lalala">

  </div>
</div>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2017, 15:23
Аспирант
Отправить личное сообщение для Agapkin Посмотреть профиль Найти все сообщения от Agapkin
 
Регистрация: 14.05.2016
Сообщений: 33

Спасибо Alexandroppolus, рони, ОГРОМНОЕ за помощь!!!!

Код от Alexandroppolus работает четко , а вот от рони почему то нет, менюха все равно закрывается, хотя на пустом блоке работает тоже без вопросов. Не знаю как это связано... но все же, если интересно ниже пример

https://jsfiddle.net/ycyL32sy/2/
Ответить с цитированием
  #5 (permalink)  
Старый 10.03.2017, 16:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Agapkin,
делайте пример минимальный, но с нужной структурой и классами сразу.
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .leftmenu.block{
margin-top:15px;
width:100px;
height:100px;
background:green;
display:block;
position: relative;
}
.nav.fm-menu-vertical {
  display: none;
}
.leftmenu.block.open-block-leftmenu .nav.fm-menu-vertical {
    position: absolute;
    display: block;
    top: 50px;
    left: 100%;
    width: 300px;
    height: 100px;
    background: red;
}
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  var leftmenu = $(".leftmenu");
  leftmenu.on("click",function(event) {
  if($(event.target).closest(".fm-menu-vertical").length) return;
  leftmenu.not($(this).toggleClass("open-block-leftmenu"))
  .removeClass("open-block-leftmenu")
})
});

  </script>
</head>

<body>
<div class="leftmenu block">
  <i class="fa fa-question" aria-hidden="true"></i>
  <h3>lalala</h3>
    <ul class="nav fm-menu-vertical level-1">

    </ul>
</div>

  <div class="leftmenu block">
  <i class="fa fa-question" aria-hidden="true"></i>
  <h3>Сервис и помощь</h3>
   <ul class="nav fm-menu-vertical level-1">

          <li>
        <a data-toggle="collapse" href="#menu225206965" class="link fake collapsed" aria-expanded="false">
          <i class="fa fa-shopping-bag" aria-hidden="true"></i>
          <span>Обувь</span>
        </a>
                              <div class="collapse" id="menu225206965" aria-expanded="false" style="height: 0px;">
              <ul class="nav level-2">
                                  <li class="parent">
                    <a href="/about/shoes/care-shoes/" class="link">
                      <i class="fa " aria-hidden="true"></i>
                      <span>Уход за обувью</span>
                    </a>
                  </li>
                                  <li class="parent">
                    <a href="/about/shoes/choose-size/" class="link">
                      <i class="fa " aria-hidden="true"></i>
                      <span>Как подобрать размер</span>
                    </a>
                  </li>
                                  <li class="parent">
                    <a href="/about/shoes/size-chart/" class="link">
                      <i class="fa " aria-hidden="true"></i>
                      <span>Таблица размеров</span>
                    </a>
                  </li>
                              </ul>
            </div>
                        </li>


          <li class="">
        <a href="/about/color/" class="link">
          <i class="fa fa-eyedropper" aria-hidden="true"></i>
          <span>Цвет</span>
        </a>
      </li>


          <li class="">
        <a href="/about/bonus-system/" class="link">
          <i class="fa fa-rub" aria-hidden="true"></i>
          <span>Бонусная система</span>
        </a>
      </li>


          <li class="">
        <a href="/about/make-return/" class="link">
          <i class="fa fa-refresh" aria-hidden="true"></i>
          <span>Как сделать возврат</span>
        </a>
      </li>


          <li class="">
        <a href="/about/make-order/" class="link">
          <i class="fa fa-calculator" aria-hidden="true"></i>
          <span>Как сделать заказ</span>
        </a>
      </li>


          <li class="">
        <a href="/about/status-client/" class="link">
          <i class="fa fa-user-circle" aria-hidden="true"></i>
          <span>Статусы клиентов</span>
        </a>
      </li>


          <li class="">
        <a href="/about/question-answer/" class="link">
          <i class="fa fa-question-circle" aria-hidden="true"></i>
          <span>Вопрос-ответ</span>
        </a>
      </li>

  </ul></div>
  <div class="leftmenu block">
  <i class="fa fa-question" aria-hidden="true"></i>
  <h3>Сервис и помощь</h3>
   <ul class="nav fm-menu-vertical level-1">

          <li>
        <a data-toggle="collapse" href="#menu225206965" class="link fake collapsed" aria-expanded="false">
          <i class="fa fa-shopping-bag" aria-hidden="true"></i>
          <span>Обувь</span>
        </a>
                              <div class="collapse" id="menu225206965" aria-expanded="false" style="height: 0px;">
              <ul class="nav level-2">
                                  <li class="parent">
                    <a href="/about/shoes/care-shoes/" class="link">
                      <i class="fa " aria-hidden="true"></i>
                      <span>Уход за обувью</span>
                    </a>
                  </li>
                                  <li class="parent">
                    <a href="/about/shoes/choose-size/" class="link">
                      <i class="fa " aria-hidden="true"></i>
                      <span>Как подобрать размер</span>
                    </a>
                  </li>
                                  <li class="parent">
                    <a href="/about/shoes/size-chart/" class="link">
                      <i class="fa " aria-hidden="true"></i>
                      <span>Таблица размеров</span>
                    </a>
                  </li>
                              </ul>
            </div>
                        </li>


          <li class="">
        <a href="/about/color/" class="link">
          <i class="fa fa-eyedropper" aria-hidden="true"></i>
          <span>Цвет</span>
        </a>
      </li>


          <li class="">
        <a href="/about/bonus-system/" class="link">
          <i class="fa fa-rub" aria-hidden="true"></i>
          <span>Бонусная система</span>
        </a>
      </li>


          <li class="">
        <a href="/about/make-return/" class="link">
          <i class="fa fa-refresh" aria-hidden="true"></i>
          <span>Как сделать возврат</span>
        </a>
      </li>


          <li class="">
        <a href="/about/make-order/" class="link">
          <i class="fa fa-calculator" aria-hidden="true"></i>
          <span>Как сделать заказ</span>
        </a>
      </li>


          <li class="">
        <a href="/about/status-client/" class="link">
          <i class="fa fa-user-circle" aria-hidden="true"></i>
          <span>Статусы клиентов</span>
        </a>
      </li>


          <li class="">
        <a href="/about/question-answer/" class="link">
          <i class="fa fa-question-circle" aria-hidden="true"></i>
          <span>Вопрос-ответ</span>
        </a>
      </li>

  </ul></div>

</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 10.03.2017, 17:30
Аспирант
Отправить личное сообщение для Agapkin Посмотреть профиль Найти все сообщения от Agapkin
 
Регистрация: 14.05.2016
Сообщений: 33

Сообщение от рони
делайте пример минимальный, но с нужной структурой и классами сразу.
- ок, буду иметь ввиду, я думал, что может что-то важное не передал в примере и решил весь код показать.
рони, ОГРОМНОЕ ВАМ ЧЕЛОВЕЧЕСКОЕ СПАСИБО !!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS / jQuery — почему не получается выполнить программный клик по кнопке? antonium Events/DOM/Window 1 17.07.2018 00:28
собыытие клик. louboutin Events/DOM/Window 6 04.06.2016 08:06
Клик и двойной клик ksa Events/DOM/Window 18 19.12.2013 09:55
сломался клик средней кнопкой Gvozd Сайт Javascript.ru 8 08.06.2012 17:57
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47