Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как выделить активный пункт меню javascript (https://javascript.ru/forum/misc/34601-kak-vydelit-aktivnyjj-punkt-menyu-javascript.html)

АртурГарик 11.01.2013 17:14

Как выделить активный пункт меню javascript
 
Помогите пожалуйста, хочу чтобы пункт меню выделялся при ее выборе.
<div id="gmenu">
<ul>
<li><a href="#" ><span>Главная</span></a></li>
<li><a href='#'><span>Пользователи</span></a></li>
<li><a href='#'><span>Новости</span></a></li>
<li><a href='#'><span>Гостиницы</span></a></li>
</ul>
</div>

Вот как должен выглядеть
<li><a href="#" class="current"><span>Главная</span></a></li>
и желательно указать где надо прописывать скрипт для выделения.
Спасибо!

tsigel 11.01.2013 17:22

А Учебник читать не пробовали?

АртурГарик 11.01.2013 17:32

Читал вот что нужно
$('div.top_menu li').each(function () {if (this.getElementsByTagName("a")[0].href == location.href) this.className = "current";});

а как ее применить к моему коду?

Tek 11.01.2013 17:47

Цитата:

Сообщение от АртурГарик (Сообщение 226669)
Читал вот что нужно
$('div.top_menu li').each(function () {if (this.getElementsByTagName("a")[0].href == location.href) this.className = "current";});

а как ее применить к моему коду?

Что это за жесть?
если уж использовать jquery то что то в духе:
$("#gmenu > ul > li >a").click(function(){
  $(".current").removeClass("current");//Удаляем класс у прошлого выделенного
  $(this).addClass("current");//добовляем класс
});

АртурГарик 11.01.2013 17:54

а где ее прописывать?

Deff 11.01.2013 17:56

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#gmenu > ul > li >a').each(function () {
  if($(this).attr('href') == location.href) $(this).addClass('Active');
});
});
</script>
<style>
.Active{
  border:2px solid red;
}
</style>

<div id="gmenu">
 <ul>
 <li><a href="http://javascript.ru/forum/" ><span>Главная</span></a></li>
 <li><a href='http://javascript.ru/forum/misc/'><span>Пользователи</span></a></li>
 <li><a href='http://lookatcode.com/showhtml'><span>Новости</span></a></li>
 <li><a href='http://lookatcode.com/asdfsdfl'><span>Гостиницы</span></a></li>
 </ul>
 </div>

АртурГарик 11.01.2013 18:00

Спасибо большое)) вот что мне нужно было.

monolithed 11.01.2013 18:18

Цитата:

Сообщение от Tek
если уж использовать jquery то что то в духе

Чем ваш вариант отличается от варианта TC?

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function() {
    $('#gmenu').on('click', 'li', function(event) {
         $(this).addClass("active").siblings().removeClass("active");   
         event.preventDefault();
    });
});
</script>
<style>
.active {
  border:2px solid red;
}
</style>

<div id="gmenu">
 <ul>
 <li><a href="http://javascript.ru/forum/"><span>Главная</span></a></li>
 <li><a href='http://javascript.ru/forum/misc/'><span>Пользователи</span></a></li>
 <li><a href='http://lookatcode.com/showhtml'><span>Новости</span></a></li>
 <li><a href='http://lookatcode.com/asdfsdfl'><span>Гостиницы</span></a></li>
 </ul>
 </div>

SLameN 08.09.2013 18:18

А вот у меня почему то не работает, не подскажите почему?

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#menu > ul > li >a').each(function () {
  if($(this).attr('href') == location.href) $(this).addClass('active');
});
});
</script>

<div id="menu">
<ul id="nav">
<li><a href=''></a></li>
</ul>
</div>

#menu {
    background-color: #f4735e;
    width: 100%;
    height: 45px;
    border-radius: 0 0 10px 10px;
}

#nav {
    font-size: 15px;
    font-family: Tahoma, sans-serif;
    
}

#nav li a {
    outline: none;
    text-decoration: none;
    display: block;
    color: #ffffff;
    background-color: #f4735e;
    float: left;
    padding: 15px 15px;
}

#nav li a:hover, a:active, a:focus {
    background-color: #a3b754;
}

.active {
    background-color: blue !important;
}

joystick8000 29.07.2014 22:53

А как можно это добавить к другой функции?
 
в JS полный ноль, как добавить можно к этой функции?
<script type="text/javascript">
$(document).ready(function() {
	
	
	$("#topnav li").prepend("<span></span>");
	$("#topnav li").each(function() {
		var linkText = $(this).find("a").html();
		$(this).find("span").show().html(linkText);
	}); 
	
	$("#topnav li").hover(function() {
		$(this).find("span").stop().animate({ 
			marginTop: "-40"
		}, 250);
	} , function() {
		$(this).find("span").stop().animate({
			marginTop: "0"
		}, 250);
	});
	
	
});
</script>


Часовой пояс GMT +3, время: 22:17.