Активное li a внутри li a
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function () {
$('#menu a').each(function () {
var location = window.location.href;
var link = this.href;
if(location == link) {
$(this).addClass('active');
}
});
});
</script>
<ul id="menu">
<li><a href="#">Тест</a></li>
<li><a href="#">Тест 2</a>
<ul>
<li><a href="#">Тест 3</a></li>
<li><a href="#">Тест 4</a></li>
</ul></li>
</ul>
Как сделать, чтобы подсвечивался главный <li> внутри которого еще один ul. На данный момент подсвечивает только внутри второго ul |
можно так
<!DOCTYPE HTML>
<html>
<head>
<style>
.active {
color: red;
}
</style>
</head>
<body>
<ul id="menu">
<li><a href="#">Тест</a></li>
<li><a href="#">Тест 2</a>
<ul>
<li><a href="#">Тест 3</a></li>
<li><a href="xxx">Тест 4</a></li>
</ul>
</li>
</ul>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function () {
$('#menu a').each(function () {
var location = 'xxx'; //window.location.href;
var link = this.href;
if (link.indexOf(location) !== -1) {
$(this).addClass('active');
}
});
$('#menu li').has('a.active').find('> a').addClass('active');
});
</script>
</body>
</html>
|
это наводящие примеры
<style>
a[href=test2] {
color: red
}
}
.active {
color: green;
font-weight: bold;
}
</style>
<body>
<ul id="menu">
<li>
<a href="test1">Тест1</a>
</li>
<li>
<a href="test2">Тест2</a>
</li>
<li>
<a href="test3">Тест3</a>
</li>
</ul>
<script>
var link = document.querySelector("#menu a[href='test1']");
//document.querySelector("#menu a[href='" + window.location.href + "']")
if (link) link.style.color = 'green';
</script>
</body>
|
Pavel M., к сожалению не работает
Poznakomlus, а что такое [href=test2] в css? Я не сильно силен в JS натолкните хоть на правильный путь... Заранее спасибо |
Цитата:
parents('li')
и брать последнего родителя. Потом искать там дочернюю ссылку и уже ее отмечать... |
Цитата:
<!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'>
.active {
background-color: red;
}
</style>
<script type='text/javascript'>
$(function () {
$('#menu a').each(function () {
var location = 'test' //window.location.href;
var link = this.href;
//if(location == link) {
if(link.lastIndexOf(location)>-1) {
var o=$(this).parents('li');
o.eq(o.length-1).children('a').addClass('active');
};
});
});
</script>
</head>
<body>
<ul id="menu">
<li>
<a href="#">Тест</a>
</li>
<li>
<a href="#">Тест 2</a>
<ul>
<li><a href="test">Тест 3</a></li>
<li><a href="#">Тест 4</a></li>
</ul>
</li>
</ul>
</body>
</html>
</html>
Проверку я конечно сделал для теста... Потом сделай свою, какую нужно... |
А если названия файлов разные, как быть?
|
Цитата:
Делай условия какие тебе нужно. Это я для демонстрации такие сделал. |
<li><a href="#">Материалы</a>
<ul>
<li><a href="a.php">Статьи</a></li>
<li><a href="b.php">Новости</a></li>
<li><a href="v.php">Полезные ссылки</a></li>
<li><a href="c.php">Вопросы инструктору</a></li>
</ul>
</li>
var location = 'test' - ведь у меня же разные страницы? я же через запятую их не напишу. А если сделать так: var location = window.location.href; То работает как-то некорректно, выделяет половину <li> |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 18:18. |