Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.09.2015, 13:23
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

mouseout и дочерние блоки
Ребят такая тема.
есть див в нем много дивов и блоков и ссылок с разными вложенностями. и есть второй блок который к нему прижат.

предподожем выглядит так:
<div class='parent-block-one'>
    <div class='children-block-one'></div>
    <div class='children-block-two'>
         <a href = ''>12</a>
         <a href = ''>2</a>
         <a href = ''>14</a>
         <div class = 'block-z'>
              <span></span>
         </div>
    </div>
</div>
<div class='parent-block-two'></div>

задача следущая

убираем мышку с блока 'parent-block-one' делаем ему display:none.
но если мы мышку убрали но попали на блок 'parent-block-two' тогда нечего не делаем

реализовал так

$('.parent-block-one').mouseout(function(e){
	if($( e.relatedTarget ).attr('class')!='parent-block-two')
           {
           $(this).css('display','none');
	   }
});


но в таком случае если мы водим по блоку 'parent-block-one' и попадаем на любой дочерний блок то он закрывает этот див. но как мне сделать что он не закрывал. не перечеслять же все классы дочерних блоков.
Ответить с цитированием
  #2 (permalink)  
Старый 30.09.2015, 13:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Shuryga, какой смысл плодить темы на одном форуме?
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2015, 13:48
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

Я сначала не там создал Сорян ребят
Ответить с цитированием
  #4 (permalink)  
Старый 30.09.2015, 18:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,074

Сообщение от Shuryga
mouseout
mouseleave
Ответить с цитированием
  #5 (permalink)  
Старый 01.10.2015, 01:11
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Хз, как на JQuery, но по простому можно так:
var parentBlockOne = document.querySelector('.parent-block-one'),
    parentBlockTwo = parentBlockOne.nextElementSibling;

parentBlockOne.onmouseout = function(e) {
  if ( e.relatedTarget == parentBlockTwo || this.contains(e.relatedTarget) ) {
    return false;
  }

  this.style.display = 'none';
};
Ответить с цитированием
  #6 (permalink)  
Старый 05.11.2015, 13:26
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

Ребят спасибо большое все работает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mouseover, mouseout - не распространяется на дочерние элементы barmaley Events/DOM/Window 31 01.06.2017 08:52
Показать скрыть блоки nurik2120 Элементы интерфейса 4 18.06.2013 10:59
Jquery не учитывает дочерние элементы metaller92 jQuery 2 17.06.2013 11:58
Вопрос про появляющиеся блоки. Vladislav Библиотеки/Тулкиты/Фреймворки 3 15.06.2013 02:16
mouseout: Определить дочерние элементы Papa Общие вопросы Javascript 3 03.02.2010 20:29