2015-04-10 2 views
0

Могу ли я добавить свойство css в состояние зависания элементов.Добавить свойство css в элементы: hover state

Я знаю, как добавить фон к элементу, мне нужно добавить фон к элементам: состояние hover.

У меня есть <div class="myDiv"></div>

Я могу добавить CSS фон $('.myDiv').css('background', 'red');

При использовании ('.myDiv').hover((function(e) { $(this).css('background', 'red'); фоновых изменений на парении, но он остается таким образом, даже если не парит над элементом.

Любые идеи?

+0

Есть ли причина, по которой вы хотите сделать это с помощью javascript? Есть неизвестный фактор, мешающий вам использовать селектор ': hover' css? – jbutler483

+0

Как правило, применение стилей с использованием JavaScript является плохой практикой. Пожалуйста, используйте селектор CSS ': hover' или добавьте/удалите классы. –

+0

Да, есть причина, поскольку я генерирую фон с помощью js. – sniurs

ответ

7

метод связывает обработчики для событий mouseenter и mouseleave. Вы можете использовать его для простого применения поведения к элементу в течение времени, в течение которого мышь находится внутри элемента.

$('.myDiv').hover(function(e) { $(this).css('background', 'red'); }, 
       function() { $(this).css('background', 'none'); }); 

Fiddle

+0

Нет, это не помогает, эффект зависания вообще не применяется после этого .. – sniurs

+0

предоставит ваш html –

+0

https://jsfiddle.net/y5Lmj001/ –

1

Вы можете реализовать его не с помощью CSS нет необходимости в какой-либо сценарий,

.myDiv:hover { 
 
    background: red; 
 
}
<div class="myDiv">Hello</div>

0

Попробуйте использовать mouseenter и mouseleave события вместо этого. Или написать ваш текущий код, как это:

('.myDiv').hover((function(e) { $(this).toggleClass('redBackground') }); 

Здесь вы должны определить класс CSS «redBackground».

0

функция зависания состоит из двух состояний. наведите указатель мыши и наведите указатель мыши на состояние.

$('.myDiv').hover(
    function() { 
     $(this).css('background', 'red'); 
    }, function() { 
     $(this).css('background', 'white') 
    } 
); 

Для дополнительной информации проверка this ссылка.

0

Даже вы можете использовать события jQuery mouseenter и mouseleave. Working Demo

$(".myDiv").mouseenter(function() { 
    $(this).css("background","red"); 
}); 
$(".myDiv").mouseleave(function() { 
    $(this).css("background","none"); 
}); 
+0

не могли бы вы объяснить, как это добавляет какую-либо ценность против любого из предыдущих ответов? – jbutler483

+0

Кажется, что это работает, тогда как «.hover» с двумя функциями внутри не будет работать в моем случае (не уверен, почему), но, вероятно, будет лучшим решением. – sniurs

0

Просто используйте css.No нужна JQuery.

.myDiv:hover { 
    background-color: #FF0000; 
} 
Смежные вопросы