Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.09.2014, 17:32
Интересующийся
Отправить личное сообщение для MasterDmx Посмотреть профиль Найти все сообщения от MasterDmx
 
Регистрация: 16.02.2013
Сообщений: 21

Дочерние элементы и mouseover
Добрый день, возникла такая проблема:

На странице есть много вот таких кусков кода:
<td class="info">
      <span class="info_but"></span>
      <div class="info_cont"> Ла-ла-ла</div>
</td>

Задача очень простая, нужно что бы при наведении на .info_butt блок .info_cont становился видимым, и, соответственно, наоборот, при убирании курсора за пределы .info_butt блок .info_cont пропадал.

Пытался сделать через дочерние элементы. Вот такой код получился:
$('td.info').each(function() {
	$(this).children(".info_but").mouseover(function(){
		$(this).children(".info_cont").fadeIn();
	}).mouseout(function(){
		$(this).children(".info_cont").hide();
	});
});


Наведение срабатывает, пробовал проверять вставляя alert, а вот $(this).children(".info_cont") никак не хочет скрывать и раскрываться. Быть может потому что $(this) уже в другой функии? Тогда как сделать что бы работало.

Заранее спасибо за помощь.

Последний раз редактировалось MasterDmx, 17.09.2014 в 17:37.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2014, 17:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Потому что .info_cont очевидно не дочерний элемент .info_but. Надо использовать какойнить .sibling\s или там .closest.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2014, 18:05
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Как-то так:
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<body>
  <table>
    <tr>
      <td class="info">
        <span class="info_but">Кнопка 1</span>
        <div class="info_cont">Ла-ла-ла</div>
      </td>
    </tr>
    <tr>
      <td class="info">
        <span class="info_but">Кнопка 2</span>
        <div class="info_cont">Ла-ла-ла</div>
      </td>
    </tr>
    <tr>
      <td class="info">
        <span class="info_but">Кнопка 3</span>
        <div class="info_cont">Ла-ла-ла</div>
      </td>
    </tr>
  </table>
  
  <script>
    
    $('.info_but').mouseover(function() {
      $(this).next().show();
    });

    $('.info_but').mouseout(function() {
      $(this).next().hide();
    });

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mouseover, mouseout - не распространяется на дочерние элементы barmaley Events/DOM/Window 31 01.06.2017 08:52
Jquery не учитывает дочерние элементы metaller92 jQuery 2 17.06.2013 11:58
Выбрать дочерние элементы элемента с конкретным CSS adelante jQuery 1 15.07.2012 18:04
Оnmouseout срабатывает при наведении на дочерние элементы lancer jQuery 0 31.03.2012 08:22
mouseout: Определить дочерние элементы Papa Общие вопросы Javascript 3 03.02.2010 20:29