Перелистывание изображений
Добра!
var current = ($('div#rotator ul li.show') ? $('div#rotator ul li.show') : $('div#rotator ul li:first')); var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#rotator ul li:first') : current.next()) : $('div#rotator ul li:first')); Я хотел бы попросить подробно описать данный код. Я знаю что он высчитывает текущее изображение и следующее. Знаю что двоеточие это фильтр, но все равно не могу понять суть. Может кто нибудь может подробно описать, просто хочу сделать чтобы еще можно было перелистывать картинки и назад, а чтоб это сделать нужно вникнуть в этот код и по сделать по подобию. Заранее спасибо! |
Вот этот код без тернарных операторов:
var current; if ( $('div#rotator ul li.show') ) { current = $('div#rotator ul li.show'); } else { current = $('div#rotator ul li:first')); } var next; if ( current.next().length ) { if ( current.next().hasClass('show') ) { next = $('div#rotator ul li:first'); } else { next = current.next(); } } else { next = $('div#rotator ul li:first'); } Вроде всё и так очевидно. Хотя первое условия весьма странное, ибо всегда будет выполняться... Возможно там length забыли. |
|
Спасибо jsnb, так куда более понятно. На основе вашего кода я смог написать перелистывание предыдущей картинки:
var current; if ( $('div#rotator ul li.show') ) { current = $('div#rotator ul li.show'); } else { current = $('div#rotator ul li:first'); } var prev; if ( current.index() != 0) { prev = current.prev("li"); } else { prev = $('div#rotator ul li:last'); } |
Цитата:
if ( $('div#rotator ul li.show').length ) { т.к. в текущем варианте оно абсолютно бессмысленно т.к. всегда истинно. |
скорее всего оно верно, я думаю там подразумевается если вдруг не будет класса show, то оно присвоит этот класс первому элементу.
|
Цитата:
if ( $('div#rotator ul li.show') ) Это будет всегда истинным т.к. $('div#rotator ul li.show') создает объект jQuery независимо от того будут найдены элементы удовлетворяющие селектору или нет. А объект при логическом преобразовании всегда дает true. А вот если сделать так: if ( $('div#rotator ul li.show').length ) то это условие будет выполнено только если будет найден хоть один элемент удовлетворяющий селекторы (элемент списка с классом show). |
dulingleb,
а чем код в 3 посте неподошёл там и вперед и назад хоть залистайся |
Цитата:
|
Часовой пояс GMT +3, время: 06:59. |