Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2016, 16:14
Интересующийся
Отправить личное сообщение для Vanguger Посмотреть профиль Найти все сообщения от Vanguger
 
Регистрация: 05.11.2014
Сообщений: 14

Точно определить блок при наведении
Имеется:
<div>
  <div>
    <div>
      <div></div>
    </div>
  </div>
</div>


Подскажите пожалуйста, как при наведении изменить класс блока который под курсором, у меня же получается, что при наведении на дочерний, изменяются все родители:

jQuery('div').hover(function(){
	jQuery(this).addClass('hoverBlock');
}, function(){
	jQuery(this).removeClass('hoverBlock');
});
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2016, 17:07
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

здесь можно почитать
https://learn.javascript.ru/event-bubbling
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2016, 06:54
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Vanguger,
jQuery('div').hover(function(e){
	jQuery(e.target).addClass('hoverBlock');
}, function(e){
	jQuery(e.target).removeClass('hoverBlock');
});
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2016, 11:22
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

вроде и jQuery(this).addClass('hoverBlock');
работает?

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
  <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <style>
    div { 
      padding: 20px;
      border: 1px solid;
      background-color: white;
    }

    .hoverBlock {
      background-color: red;
    }
  </style>
<head>
<body>
  
  <div>
    <div>
      <div>
        <div></div>
      </div>
    </div>
  </div>

  <script>
    jQuery('div').hover(function(e){
        jQuery(this).addClass('hoverBlock');
    }, function(e){
        jQuery(this).removeClass('hoverBlock');
    });
  </script>

</body>
</html>

Последний раз редактировалось Pavel M., 30.11.2016 в 11:37.
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2016, 12:46
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Pavel M., всё верно) hover использует mouseenter/mouseleave которые не всплывают, тогда сделаем так:
<div>
	<div>
		<div>
			<div></div>
		</div>
	</div>
</div>
 
<script>
$('div').mouseover(function(e) {
	e.stopPropagation();
	$(e.target).addClass('hoverBlock');
}).mouseout(function(e) {
	e.stopPropagation();
	$(e.target).removeClass('hoverBlock');
});
</script>

<!----- или ----->

<div class="ddd">
	<div>
		<div>
			<div></div>
		</div>
	</div>
</div>
 
<script>
$('div.ddd').mouseover(function(e) {
	$(e.target).addClass('hoverBlock');
}).mouseout(function(e) {
	$(e.target).removeClass('hoverBlock');
});
</script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрыть открыть тот или иной блок при клике на ссылке ufaclub jQuery 9 26.08.2014 00:14
Изменение текста при наведении xformer jQuery 2 11.07.2014 10:09
Разделение на 3 картинки и их открытие при наведении курсора Михаил_Michail Элементы интерфейса 1 07.07.2014 12:11
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
изменения рисунка при наведении курсора Kenan Bek Events/DOM/Window 24 19.12.2010 20:48