Javascript.RU

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

Объясните как работет этот код?
Объясните мне пожалуйста как работает следующий код
var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#rotator ul li:first') :current.next()) : $('div#rotator ul li:first')); а именно его часть в скобках
Что он делает я зная, но я не понимю как.. То есть что происходит тут (current.next().length) и вот тут ((current.next().hasClass('show')) и тд. И как почитать то что сначала идет условие, потом сразу еще условие...
Воде просмотрел курс "Специалиста" по jquery , вроде все понятно... написал кое что сам, а тут вообще не мгу понять логику...
Ответить с цитированием
  #2 (permalink)  
Старый 27.10.2015, 23:46
Новичок на форуме
Отправить личное сообщение для lexapiter25 Посмотреть профиль Найти все сообщения от lexapiter25
 
Регистрация: 27.10.2015
Сообщений: 8

Вот это не понимаю - "next().length" остальное вроде дошло, когда разобрался со скобками.
Ответить с цитированием
  #3 (permalink)  
Старый 27.10.2015, 23:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

lexapiter25,
((current.next().length) ? если есть li следующий length = 1 от текущего работаем с ним иначе length = 0 переходим к первому li
Ответить с цитированием
  #4 (permalink)  
Старый 27.10.2015, 23:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

lexapiter25,
Перелистывание изображений
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2015, 00:19
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

lexapiter25, такая логика
if (current.next().length === 1) {
	if (current.next().hasClass('show') === true) {
		var next = $('div#rotator ul li:first');
	} else {
		var next = current.next();
	}
} else {
	var next = $('div#rotator ul li:first');
}
Ответить с цитированием
  #6 (permalink)  
Старый 28.10.2015, 01:03
Новичок на форуме
Отправить личное сообщение для lexapiter25 Посмотреть профиль Найти все сообщения от lexapiter25
 
Регистрация: 27.10.2015
Сообщений: 8

Сообщение от Rise Посмотреть сообщение
lexapiter25, такая логика
if (current.next().length === 1) {
	if (current.next().hasClass('show') === true) {
		var next = $('div#rotator ul li:first');
	} else {
		var next = current.next();
	}
} else {
	var next = $('div#rotator ul li:first');
}
Понял спасибо..осталось вот с этим разобраться
next.css({opacity: 0.0})
.addClass('show')
.animate({opacity: 1.0}, 1000);

// Прячем текущую картинку
current.animate({opacity: 0.0}, 1000)
.removeClass('show');
То есть в какой момент он присваивает класс. Каждому следующему li пока не дойдет до первого? А когда дойдет, то удалит класс у него, что бы заново все началось? Так?
Или он удаляет класс show у li, которому он его только что присвоил, сразу после выполнения анимации?

Последний раз редактировалось lexapiter25, 28.10.2015 в 01:08.
Ответить с цитированием
  #7 (permalink)  
Старый 28.10.2015, 01:05
Новичок на форуме
Отправить личное сообщение для lexapiter25 Посмотреть профиль Найти все сообщения от lexapiter25
 
Регистрация: 27.10.2015
Сообщений: 8

Это вот кусок по куренту. var current = ($('div#rotator ul li.show')? $('div#rotator ul li.show') : $('div#rotator ul li:first'));
Ответить с цитированием
  #8 (permalink)  
Старый 28.10.2015, 01:19
Новичок на форуме
Отправить личное сообщение для lexapiter25 Посмотреть профиль Найти все сообщения от lexapiter25
 
Регистрация: 27.10.2015
Сообщений: 8

Сообщение от рони Посмотреть сообщение
lexapiter25,
((current.next().length) ? если есть li следующий length = 1 от текущего работаем с ним иначе length = 0 переходим к первому li
То есть в данном случае все li будут иметь lenght=1, пока не дойдут до последнего? А в конце получится, что li больше нет... иии что произойдет? будет возвращено false и переход к первому li? Так я понял?

Последний раз редактировалось lexapiter25, 28.10.2015 в 01:21.
Ответить с цитированием
  #9 (permalink)  
Старый 28.10.2015, 01:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от lexapiter25
что произойдет
найдётся первый li -- получилась карусель
Скрывать все P, кроме текущего
Ответить с цитированием
  #10 (permalink)  
Старый 29.10.2015, 01:16
Новичок на форуме
Отправить личное сообщение для lexapiter25 Посмотреть профиль Найти все сообщения от lexapiter25
 
Регистрация: 27.10.2015
Сообщений: 8

Спасибо всем за ответы разобрался..
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как мне можно изменить этот скрипт Niko Общие вопросы Javascript 3 15.04.2013 15:35
Подскажите пожалуйста как мне можно изменить этот скрипт Niko jQuery 0 13.04.2013 14:47
Как работает этот код doox911 Общие вопросы Javascript 11 02.04.2013 01:27
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40