Задача такая при наведении на элемент менять его backgroundColor, после того как отводишь мышку, должно возвращаться старое значение backgroundColor.
$('td').hover(
function(){
var a = $(this).prop('style');
$(this).css('backgroundColor', 'navy');
},
function(){
$(this).css('backgroundColor', a.backgroundColor);
});
У меня не возвращает прежний цвет. В переменную сразу записывается цвет на который был изменен.
У вас а - локальная переменная. Логично, что другая функция о ней ничего не знает. Сохраняйте значение в сам элемент, при помощи метода data()
jQuery(document).ready(function($) {
$('div').hover(
function() {
var el = $(this);
el.data({color: el.css('backgroundColor')})
.css('backgroundColor', 'navy');
},
function() {
var el = $(this);
el.css('backgroundColor', el.data('color'));
}
);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Div1</div>
<div>Div2</div>
Но решение через псевдокласс CSS :hover значительно лучше
Это на CSS делается, с помощью псевдокласса hover
const originalBackgorund = js.style.backgroundColor;
js.onmouseover = e => e.target.style.backgroundColor = 'green';
js.onmouseout = e => e.target.style.backgroundColor = originalBackgorund;
div{
width: 100px;
height: 100px;
background-color: black;
}
div:hover{
background-color: red;
}
<div></div>
<div id=js></div>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости