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,109

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

lexapiter25,
Перелистывание изображений
Ответить с цитированием
  #5 (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.
Ответить с цитированием
  #6 (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'));
Ответить с цитированием
  #7 (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.
Ответить с цитированием
  #8 (permalink)  
Старый 28.10.2015, 01:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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

Спасибо всем за ответы разобрался..
Ответить с цитированием
  #10 (permalink)  
Старый 26.05.2016, 10:37
Аспирант
Отправить личное сообщение для Lecseus Посмотреть профиль Найти все сообщения от Lecseus
 
Регистрация: 13.08.2015
Сообщений: 45

Объяснил сам себе
Здравствуйте, я попытался сам себе объяснить, как работает кусок кода. Скажите, правильно ли я понимаю или что-то упускаю или что-то понимаю неверно?
function kontroll9(){
		var answer = document.getElementById("otvet9"), - переменная, которая будет хранить элемент в html коде, который отвечает за блок, выводящий ответ.

			vastus = document.getElementsByName("v9"), - создается переменная vastus, которая хранит в себе группу элементов (radio или checkbox) под определенным айди в html коде

			array = [1,1,1,0]; //массив булевских значений, верные ответы 1

			array = array.every(function(check, i){ // перебор элементов в массиве. переменной array присваивается значение массива, обработанного функцией every. every это функция, которая проверяет все ли элементы в массиве прошли тест, который задан функцией. Сама функция задает правило, при котором функция возвращает значение параметра check, в случае если функция every прошла успешно проверку по заданному критерию, то есть равна булевому значению true. 

				return check == vastus[i].checked - возвращает значение параметра check, в случае если функция every прошла успешно проверку по заданному критерию, то есть по значениям, которые находятся в массиве array

			})
			answer.innerHTML = array ? "верно" : "неверно"; - в элементе answer выводится значение, которое получается при проверке переменной array. знак ? означает, что если значение true, то выводится надпись "верно", а : означает, что иначе выводится "неверно".			
			answer.style.color = array ? "green" : "red";
			array && correct++; - увеличивает количество правильных ответов на 

1. 
	};

и ещё, я не пойму, зачем тут в конце не только correct++ но и array++???
спасибо заранее
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как мне можно изменить этот скрипт 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