Как изменить css одного div при наведении на другой с javascript?
Привет всем, подскажите пожалуйста
Как сделать, что бы при наведении на ссылку внутри дивов (подпункт списка li) item менялся допусти background ссылки в диве category, но только именно "брата" - т.е. в рамках одного li?
<ul>
<li>
<div class="category"><a>need-url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
</li>
<li>
<div class="category"><a>need-url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
</li>
</ul>
Я вот сделал так, но меняются стили у всех div'ов с классом category, а как сделать что бы менялся только тот который находится в одном li - ну как бы заголовок Блока ссылок
var elm_list = document.querySelectorAll('.item a');
for(var i=0; i<elm_list.length; i++) {
elm_list[i].onmouseover = function() {
$('.category a').css('background','url(/image/ico-catalog-bgr.png) repeat-x')
;}
elm_list[i].onmouseout = function() {
$('.category a').css('background','')
;}
}
|
Цитата:
|
Ну это меню: каждая группа div'ов (category и item) меню является пунктами, но вот category это что то аля Категория товаров, а нижеидущие item это подкатегории.
Так вот когда наводишь (hover) на один из item нужно что бы менялся css (background для примера) category. Проблема в том что тут нет родителей и дочерних. они как бы равные, и завернуты в li |
Тут вроде все элементарно.
$(this).closest('li').find('.category a').css('background','');
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
.on {
background-color: red;
}
.sel {
border: 1px solid;
}
</style>
<script type='text/javascript'>
$(function (){
$('.item').hover(
function () {
$(this).addClass('sel');
$(this.parentNode).find('.category').addClass('on');
},
function () {
$(this).removeClass('sel');
$(this.parentNode).find('.category').removeClass('on');
}
);
});
</script>
</head>
<body>
<ul>
<li>
<div class="category"><a>need-url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
</li>
<li>
<div class="category"><a>need-url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
<div class="item"><a>url</a></div>
</li>
</ul>
</body>
</html>
|
InkyThousand, видимо у тебя структура неправильно выстроена. Иначе можно было бы через css все сделать.
|
Цитата:
|
Это то что нужно! Спасибо огромное, ksa!
Это все у меня из-за незнания и неопытности JS |
| Часовой пояс GMT +3, время: 16:31. |