Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как подчинить себе цикл (https://javascript.ru/forum/jquery/42978-kak-podchinit-sebe-cikl.html)

ksa 20.11.2013 15:41

Цитата:

Сообщение от wreder
но мой вариант что-то не аналогичен ей, можете подсказать что не так?

У твоей функции нет возвращаемого значения...

ksa 20.11.2013 15:59

Цитата:

Сообщение от wreder (Сообщение 281974)
Мой вариант:

var next = function(){
	
	if (current.next().length){
		      	if (current.next().hasClass('show')) {
		             $('.rotator ul li:first');
				}
				else{
					 current.next();
				}						 
	}
	else{
		$('.rotator ul li:first');
	}	
};

Вот так вроде будет по-проще...

var next = function(){
	if (current.next().length){
		if (!current.next().hasClass('show')) {
			return current.next();
		};						 
	};
	return $('.rotator ul li:first');
};

wreder 20.11.2013 16:14

ksa,
что-то то же не аналогичен, не работает у меня.... :-?

ksa 20.11.2013 16:34

Цитата:

Сообщение от wreder
не работает у меня

Так ты как потом используешь ту функцию next()?

ksa 20.11.2013 16:37

Цитата:

Сообщение от wreder
var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('.rotator ul li:first') :current.next()) : $('.rotator ul li:first'));

Аналог
var next = (function(){
	if (current.next().length){
		if (!current.next().hasClass('show')) {
			return current.next();
		};						 
	};
	return $('.rotator ul li:first');
})();

ksa 20.11.2013 16:39

Или так...

var next = $('.rotator ul li:first');
if (current.next().length){
	if (!current.next().hasClass('show')) {
		next = current.next();
	};						 
};

wreder 20.11.2013 16:52

ksa,
по ней каждый раз идет выбор следующего элемента, к которому применяется addClass и всякие анимации...

выбор через поиск следующего из всех элементов в том же (что и current) контейнере, до тех пор пока lenght = 1, как только lenght = 0 выбираем первый из всех элемент.... вот собсно...



ДА! ksa, Спасибо! Оба кода рабочие! Просто чумовые!

Спасибо Вам за отзывчивость и оперативность! :yes:

BETEPAH 20.11.2013 22:17

Цитата:

Сообщение от wreder
Собственно сам нашел объяснение конструкции, она называется "Тройной оператор"

Всю дорогу называл его тернарным оператором ;)


Часовой пояс GMT +3, время: 10:40.