Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2010, 17:46
Новичок на форуме
Отправить личное сообщение для mixail123 Посмотреть профиль Найти все сообщения от mixail123
 
Регистрация: 10.08.2010
Сообщений: 6

JQuery next метод
Есть следующий кусок верстки:
<ul id="inside_gallery2" style="left: 0px;">
<li> <a  class="current" rel="/public/files/images/1349.jpg" href="/anonses/view/efjf.html"> text1</a> </li>
<li> <a  rel="/public/files/products/putin.jpg" href="http://www.rian.ru/trend/medvedev_finland_20072010/"> text2</a> </li>
<li> <a  rel="/public/files/images/1478.jpg" href="/anonses/view/sdfsdddddd.html">text3</a> </li>
<li> <a  rel="/public/files/images/1467.jpg" href="/anonses/view/32.html"> text4></a> </li>                    
</ul>

Как видите здесь первый тег "а" имеет класс current, задача такая, по клику на определенном элементе, присвоить следующему элементу "а" класс current, а у того "а" корорый относился к классу current его убрать. Т.е. что бы после работы скрипта код имел следующий вид:
<ul id="inside_gallery2" style="left: 0px;">
<li> <a  rel="/public/files/images/1349.jpg" href="/anonses/view/efjf.html"> text1</a> </li>
<li> <a  class="current" rel="/public/files/products/putin.jpg" href="http://www.rian.ru/trend/medvedev_finland_20072010/"> text2</a> </li>
<li> <a  rel="/public/files/images/1478.jpg" href="/anonses/view/sdfsdddddd.html">text3</a> </li>
<li> <a  rel="/public/files/images/1467.jpg" href="/anonses/view/32.html"> text4></a> </li>                    
</ul>

Это нужно чтобы считать атрибут rel с элемента который имеет класс "current" и поменять картинку.
Пробовал таким образом:
Код:
 $("#someid").click(function(){
                    	  
                    	   $('#inside_gallery2 li a.current').next().addClass("current");
                    	   $('#inside_gallery2 li a.current').prev().removeClass("current");
                    	   
                    	    var res = "/phpThumb/phpThumb.php?w=213&h=131&zc=1&src=" + $('#inside_gallery2 li a.current').attr("rel");
                      	   $("#img123").attr({ src: res });
                        
                       }
)
не работает, гдето накосячил.
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2010, 17:48
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

$('#inside_gallery2 li:has(a.current)').next().find('a').addClass("current").parent().prev().find('a').removeClass('current');

Последний раз редактировалось exec, 10.08.2010 в 17:52.
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2010, 17:56
Новичок на форуме
Отправить личное сообщение для mixail123 Посмотреть профиль Найти все сообщения от mixail123
 
Регистрация: 10.08.2010
Сообщений: 6

нет, prev убирать не нужно, т.к. нужно не только добавить к следующему элементу "а" класс current, но и убрать его у предыдущего. Сейчас выложу более простой пример который работает как положено, с таким же алгоритмом. Минуту...
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2010, 17:58
Новичок на форуме
Отправить личное сообщение для mixail123 Посмотреть профиль Найти все сообщения от mixail123
 
Регистрация: 10.08.2010
Сообщений: 6

<li class="third-item" rel="/public/files/products/putin.jpg">list item 3</li>
   <li rel="/public/files/images/1349.jpg">list item 1</li>
   <li rel="/public/files/products/putin.jpg">list item 2</li>
   <li rel="/public/files/images/1478.jpg">list item 4</li>
   <li rel="">list item 5</li>


и
$("#some").click(function(){
                    		
                       	$('li.third-item').next().css('background-color', 'red');
                    	   $('li.third-item').next().addClass("third-item");
                    	   $('li.third-item').prev().removeClass("third-item");
                    	   $('li.third-item').prev().css('background-color', 'white');
                    	  
                    	  var relpict = $('li.third-item').attr("rel");
                    	  res = "http://misha/phpThumb/phpThumb.php?w=213&h=131&zc=1&src=" + relpict;
                    	 //alert(rel);
                    	 $("#img123").attr({ src: res });

                    	  //$('#img123').attr("src") = rel;
                    	   
                       }
                       )


Этот тестовый пример работаен как положено.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2010, 18:01
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

mixail123, я поправил пост, посмотрите.
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2010, 18:14
Новичок на форуме
Отправить личное сообщение для mixail123 Посмотреть профиль Найти все сообщения от mixail123
 
Регистрация: 10.08.2010
Сообщений: 6

Спасибо огромное exec, то что нужно +
Ответить с цитированием
  #7 (permalink)  
Старый 10.08.2010, 18:57
Новичок на форуме
Отправить личное сообщение для mixail123 Посмотреть профиль Найти все сообщения от mixail123
 
Регистрация: 10.08.2010
Сообщений: 6

Если можно прокоментируйте этот код, я опишу как я его понимаю, я вы поправьте меня, если я не прав

$('#inside_gallery2 li:has(a.current)').next().find('a').addClass("cur rent").parent().prev().find('a').removeClass('curr ent');

ищется элемент li содержащий a.current, потом методом find ищется следующий элемент "а" и добовляется ему класс current, потом наверное,
возвращает родителя <a> насколько я понимаю <li>, передвигается на один элемент назад ищет тег <а> и удаляет класс current у него
Ответить с цитированием
  #8 (permalink)  
Старый 10.08.2010, 19:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от mixail123
Если можно прокоментируйте этот код
Сообщение от mixail123
$('#inside_gallery2 li:has(a.current)').next().find('a').addClass("cur rent").parent().prev().find('a').removeClass('curr ent');
Это пипец.
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2010, 13:52
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Сообщение от Kolyaj Посмотреть сообщение
Это пипец.


Логика подсказывает, что не будет тот код работать.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
jquery preventDefault метод InviS jQuery 5 01.07.2010 08:22
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29