Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение стилей по клику (https://javascript.ru/forum/misc/31595-izmenenie-stilejj-po-kliku.html)

x-miller-x 13.09.2012 17:41

Изменение стилей по клику
 
Есть список у меня по клику стиль меняется, но я хочу при этом удалить класс у предыдущего элемента. Как реализовать?
function kodimg(id)
{
document.getElementById(id).className = 'act';
}

вот html

<ul>
<li id="1" class="act" onclick="kodimg(id)"><a href="#">объявления</a></li>
<li id="2" onclick="kodimg(id)"><a href="#">товары</a></li>
<li id="3" onclick="kodimg(id)"><a href="#">все</a></li>
</ul>

-majestic- 13.09.2012 18:35

Можно так, например:
function kodimg(){
	$('li').click(function () {
		$('li').removeClass('act');
		$(this).addClass('act');
	});
}

x-miller-x 13.09.2012 18:55

работает, но только после второго клика почему то

x-miller-x 13.09.2012 19:07

да и еще можно как нибудь для конкретного списка так сделать? а то щас получается, что ко всем спискам добавляет атрибут - class

-majestic- 13.09.2012 19:15

Попробуй так:
onclick="kodimg(); return false;"

А по поводу списка, присвой ему класс и напиши так:
$('ul.yourClass li').click(function () {
        $('ul.yourClass li').removeClass('act');
        $(this).addClass('act');
    });

А вообще почитай про селекторы jQuery, там много полезных штук найдёшь.

-majestic- 13.09.2012 19:22

А вообще зачем тебе onclick?

Убираешь у элементов списка onclick и просто задаёшь класс списку и пишешь так:
$(document).ready(function(){
	$('ul.yourClass li').click(function () {
		$('ul.yourClass li').removeClass('act');
		$(this).addClass('act');
	});
});

x-miller-x 13.09.2012 19:28

блин, все равно по второму клику в начале надо

-majestic- 13.09.2012 20:00

У меня всё работает. Покажи код html + js.

x-miller-x 13.09.2012 20:13

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script src="js/jquery.min.js" type="text/javascript"></script>
<script>
function kodimg(){
$('ul.lol li').click(function () {
$('ul.lol li').removeClass('act');
$(this).addClass('act');
});
}
</script>
</head>
<body>
<ul class="lol">
<li id="1" class="act" onclick="kodimg(); return false;"><a href="#">объявления</a></li>
<li id="2" onclick="kodimg(); return false;"><a href="#">товары</a></li>
<li id="3" onclick="kodimg(); return false;"><a href="#">все</a></li>
</ul>
</body>
</html>

-majestic- 13.09.2012 21:17

Ну я же выше написал, что нужно убрать онклик, а скрипт такой:
$(document).ready(function(){
    $('ul.yourClass li').click(function () {
        $('ul.yourClass li').removeClass('act');
        $(this).addClass('act');
    });
});

П.С.: А ещё код тут можно подсвечивать специальными тэгами.


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