Javascript.RU

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

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

предподожем выглядит так:
<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:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Shuryga
убираем мышку с блока 'parent-block-one' делаем ему
display:none
.
но если мы мышку убрали но попали на блок 'parent-block-two' тогда нечего не делаем
Как вариант:
- при уходе с parent-block-one запускаем setTimeout()? который и будет его прятать
- при попадании на parent-block-two убиваем этот setTimeout()
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2015, 15:29
Аспирант
Отправить личное сообщение для Shuryga Посмотреть профиль Найти все сообщения от Shuryga
 
Регистрация: 24.09.2014
Сообщений: 44

проблема в том что пока мы ползаем по этому блоку мышкой, мы можем навести на дочерний блок (относительно блока parent-block-one). и тогда он скроется а мне надо что б он оставался
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2015, 22:58
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

проверь x и y ))))
с dom не очень хорошо знаком )))
Ответить с цитированием
  #5 (permalink)  
Старый 27.12.2016, 21:03
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

Может не в тему, помогите пожалуйста

Отображаются звездочки рейтинга пользователя, при наведении курсора содержимое блока с id edit_user_rating меняется на пустые звездочки с class span_rating. При клике на звездочку берется data rating и дальше будет обрабатываться.

А если курсор убрать из блока содержимое блока вернется (звездочки с рейтингом)

Если курсор завести сверху, то click не работает

https://jsfiddle.net/Andrey_Vitovtov/q6qtd84L/1/

Последний раз редактировалось andrey3681, 28.12.2016 в 15:14. Причина: Исправил код
Ответить с цитированием
  #6 (permalink)  
Старый 28.12.2016, 15:13
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

https://jsfiddle.net/Andrey_Vitovtov/q6qtd84L/1/
Ответить с цитированием
  #7 (permalink)  
Старый 28.12.2016, 16:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

andrey3681,
может готовое взять?
Код звезд для рейтинга
Ответить с цитированием
  #8 (permalink)  
Старый 28.12.2016, 16:18
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

рони,
Можно и готовое взять! Но хотелось бы узнать в чем проблема в вышеприведенном коде, почему "так работает".
Тем более на странице предполагается много таких "звездных рейтингов"

Последний раз редактировалось andrey3681, 28.12.2016 в 16:33.
Ответить с цитированием
  #9 (permalink)  
Старый 28.12.2016, 17:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

рейтинг звёздочками
andrey3681,
скорее всего mouseenter не срабатывает, и менять html на который всё завязано на каждый чих, не особо разумно.
вариант близкий к вашему (из вашего и нашего )

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .edit_user_rating{
    text-align:center;
    width:200px;
    background:#000;
    height:50px;
  }

  .rating_star{
    display:inline-block;
    transition:0.2s;
    color:#737373;
  }

  .rating_star>span{

    position:relative;
    font-size:25px;
    height:0.1px;
    transition:0.2s;
    cursor:pointer;
  }

  .rating_star:hover>span:before,.rating_star>span.star_select:before{
    content:"\2605";
    position:absolute;
    color:#FEDF69;
    transition:0.2s;
  }

  .rating_star>span:before,.rating_star:hover>span:hover~span:before{
    transition:0s;
    color:transparent;
  }
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function () {

       $('.edit_user_rating').on('click', '.rating_star span', function (event) {
           event.preventDefault();
           var parent = $(this).parent().addClass('select')
           var $span = parent.find('span').removeClass('star_select');
           var rating = $span.index(this);
           $span.slice(0,++rating).addClass('star_select');
           alert(rating);
       })
   })
  </script>
</head>

<body>
<div class="edit_user_rating">
  <div class="rating_star">
    <span class="star_select">☆</span><span class="star_select">☆</span><span>☆</span><span >☆</span><span>☆</span>
  </div>
</div>
<br>
<div class="edit_user_rating">
  <div class="rating_star">
    <span>☆</span><span>☆</span><span>☆</span><span >☆</span><span>☆</span>
  </div>
</div>
<br>
<div class="edit_user_rating">
  <div class="rating_star">
    <span class="star_select">☆</span><span class="star_select">☆</span><span class="star_select">☆</span><span >☆</span><span>☆</span>
  </div>
</div>
<br>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавное раскрытие и сворачивание блока StyLLeR jQuery 6 07.07.2014 16:00
Движение по элементам блока без перезапуска функции выпадающеего меню. tutelaris Элементы интерфейса 4 26.04.2013 09:15
слайд панели tadjik1 Элементы интерфейса 22 02.04.2012 17:13
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21
mouseover не распространяется на два блока с одни id dolphin_al jQuery 18 24.11.2010 13:23