Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2013, 21:39
Интересующийся
Отправить личное сообщение для Blackmore1991 Посмотреть профиль Найти все сообщения от Blackmore1991
 
Регистрация: 13.03.2013
Сообщений: 18

Обратиться к предыдущему элементу
Помогите обратится к предыдущему элементу
<li .current></li> <li></li> <li></li> <li></li>
при нажатии на <span class="next">вперед</span>

у меня меняется на <li ></li> <li.current></li> <li></li> <li></li>
и т.д.

Как сделать только у предыдущего li менялось css?
$(document).ready(function(){

    var $curr = $(".current");
    $curr.css("background", "");
    $(".next").click(function () {
      $curr = $curr.next();
      $("li").css("background", "yellow");
      $curr.css("background", "");
    });

  });

Последний раз редактировалось Blackmore1991, 02.07.2013 в 21:42.
Ответить с цитированием
  #2 (permalink)  
Старый 02.07.2013, 21:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Перед выполнением шестой строчки в $curr находится как раз "предыдущий" li. И что-то по коду не видно чтобы класс .current передавался следующему li. И вобще - зачем возиться с css в коде, когда можно оформить все в css-файле через селектор .current ?
Ответить с цитированием
  #3 (permalink)  
Старый 02.07.2013, 22:00
Интересующийся
Отправить личное сообщение для Blackmore1991 Посмотреть профиль Найти все сообщения от Blackmore1991
 
Регистрация: 13.03.2013
Сообщений: 18

При нажатии на span передается класс current следующему li
(function($) {
(function($) {
$(function() {

  $('ul.tabs').on('click', 'li:not(.current)', function() {
    $(this).addClass('current').siblings().removeClass('current')
      .parents('div.section').find('div.box').eq($(this).index()).fadeIn(150).siblings('div.box').hide();
  })

})
})(jQuery)
Ответить с цитированием
  #4 (permalink)  
Старый 02.07.2013, 22:07
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну вот, бери теперь фломастеры css файл и раскрашивай свои li'шки. В чем траблы то?
Ответить с цитированием
  #5 (permalink)  
Старый 02.07.2013, 22:16
Интересующийся
Отправить личное сообщение для Blackmore1991 Посмотреть профиль Найти все сообщения от Blackmore1991
 
Регистрация: 13.03.2013
Сообщений: 18

мне нужно , чтобы когда current перешел на вторую li , то первая li стала желтого цвета, а когда current на 3 li , то вторая li тоже стала бы желтой. Ну и обратно тоже можно.

Последний раз редактировалось Blackmore1991, 02.07.2013 в 22:23.
Ответить с цитированием
  #6 (permalink)  
Старый 02.07.2013, 22:51
Интересующийся
Отправить личное сообщение для Blackmore1991 Посмотреть профиль Найти все сообщения от Blackmore1991
 
Регистрация: 13.03.2013
Сообщений: 18

Вот почти что мне нужно .
Но на втором шаге он следующий элемент перекрашивает(

$(document).ready(function(){

    var $curr = $(".current");
    $curr.css("color", "#cb2a34");
    $(".step_next").click(function () {
      $curr = $curr.next(); 
	  $(".tabs li").prev().css("color", "#09e8f5");
      $curr.css("color", "#cb2a34");
    });

  });
Ответить с цитированием
  #7 (permalink)  
Старый 02.07.2013, 23:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Blackmore1991,

вариант кнопок вперёд назад
<!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-1.8.3.js'></script>
  <style type='text/css'>

li.current
{
    background-color:  #FFFFFF;
}
li{
     background-color: #FFFF00;
}
div.next, div.prev{
   width: 50px;
   float: left;
   cursor:pointer;
}

 </style>
<script type='text/javascript'>
$(window).load(function(){
     $(".next, .prev").click(function () {
     var $curr = $(".current");
     $curr.removeClass('current');
     var go = $(this).text();
     $curr = $curr[go]().size()? $curr[go]() : $curr[(go=='next'?'prev':'next')+'All'](':last');
     $curr.addClass('current');
    });
});
</script>
</head>
<body>
  <div>
    <ul class='menu'>
        <li class="current"> 1 </li>
        <li> 2 </li>
        <li> 3 </li>
        <li> 4 </li>
        <li> 5 </li>
    </ul>
</div>
<div class='next'>next</div>
<div class='prev'>prev</div>
</body>


</html>

Последний раз редактировалось рони, 02.07.2013 в 23:13.
Ответить с цитированием
  #8 (permalink)  
Старый 03.07.2013, 05:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Blackmore1991
мне нужно , чтобы когда current перешел на вторую li , то первая li стала желтого цвета, а когда current на 3 li , то вторая li тоже стала бы желтой. Ну и обратно тоже можно.
Типа метить желтым "посещенные" li? Ну так добавляй класс допустим .visited, и смещай класс .current.

$(".step_next").click(function () {
      $curr.removeClass('current');
      $curr = $curr.next();
      $curr.addClass('visited');
});


А желтый добавишь в css.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратиться к следующему элементу. Antistas Элементы интерфейса 4 01.11.2012 17:05
как обратиться к элементу созданному с помощью jQuery .after() ? mitiya Общие вопросы Javascript 1 25.09.2012 03:11
Невозможно обратиться к только что вставленному элементу DOM Vovan91 jQuery 6 19.01.2012 14:59
как обратиться элементу по индексу DonLino jQuery 5 13.07.2010 20:16
обратиться к элементу формы, заданному переменной Andrej_2 Элементы интерфейса 4 15.05.2009 09:18