Сдание спрайт меню с использованием jquery
Доброго времени суток! Только начал изучать програмирование сайтов, поэтому буду благодарен за любую помощь.
Возникла задача создания горизонтального меню. 1 Создал PSD макет необходимого мне меню, картинка готова. 2 В HTML создал менюшку: Код:
<!-- -------------------------------------------------------------- -->3 Код css Код:
li.active a{
<script language="javascript">
$(document).ready( function () {
$('a').click('click',click_tabs);
});
function click_tabs (eventObj) {
$('a').parents.filter('*[class=active]').toggleClass('unactive');
$('eventObj.target').parents.toggleClass('active');
}
</script>
$('a').parents.filter('*[class=active]').toggleClass('unactive'); - Хочу добиться чтобы текущий активный пункт меню стал неактивным $('eventObj.target').parents.toggleClass('active') ; - делаю активным пункт меню по которому был совершен клик Не получается добиться изменения background по изменению стиля, что делаю не так? |
обрабатывайте клики сразу на li
$('#horisontal-tabs li').click(function () {
$(this).toggleClass('active unactive');
});
|
Про li как то не подумал, забыл про bubling(
А вот будет ли работать? $(this).toggleClass('active unactive'); Может верней быдет как-то так: (просто смотрю в учебник, там запись вида toggleClass(class,swith), где swith это условие когда swith==true добавит класс к элементу и наоборот) $(this).toggleClass("active",$(this).hasclass("una ctive")); или так: $(this).toggleClass("active") У меня не один не заработал |
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>
<style type='text/css'>
.red { color: red;}
.blue { color: blue;}
</style>
<script type='text/javascript'>
$(function(){
$('li').click(function () {
$(this).toggleClass('red blue');
});
});
</script>
</head>
<body>
<ul>
<li class="red">пункт 1</li>
<li class="blue">пункт 2</li>
</ul>
</body>
</html>
|
Спасибо, заработало!
Дело было в файле CSS, при задании фонового изображения. было: ul#horisontal-tabs li {//задание фона} изменил на: li {//задание фона} при тех же: .active { border: 1px groove black; background-position: 0px 0px; } .unactive { background-position: -300px -80px; border: 1px groove red; } После этого все заработало, хотя и не понял почему селектор не сработал... |
видимо, дело в Специфичности селекторов
почитайте http://htmlbook.ru/samcss/kaskadirovanie от заголовка Специфичность |
| Часовой пояс GMT +3, время: 21:06. |