янв
11
2016
Изучаем jQuery. Тройной оператор
... Вас может слегка смутить синтаксис, который мы использовали здесь для присваивания значения последующей переменной. В JavaScript (и во многих других языках программирования) этот синтаксис называется тройным оператором. Он представляет собой «укороченный» способ условного присваивания значений переменным.
Синтаксис а ? b : с означает, что если а - true, то возвращается b, в противном случае возвращается с. Вы можете использовать его для присваивания значений переменным, как это было сделано ранее, что позволит присваивать разные значения одной и той же переменной в зависимости от каких-либо условий. Естественно, для решения аналогичной задачи всегда можно воспользоваться более длинным оператором if / else, однако тройной оператор намного компактнее, поэтому он заслуживает вашего внимания.
Таким образом, строку
var next = current.next().length ? current.next() : current.siblings().first();
можно перевести на русский язык следующим образом: если текущий элемент обладает элементом-братом, который следует после него и располагается в том же контейнере (если метод next возвращает непустой массив), мы будем его использовать. Если же метод next возвращает пустой массив (то есть значение length равно 0, что на компьютерном языке означает false), мы переходим к первому элементу-брату текущего элемента (которым будет первая фотография в слайд-шоу).
script.js
$(document).ready(function(){
slideShow();
});
function slideShow() {
var current = $('#photos .show');
var next = current.next().length ? current.next() : current.siblings().first();
current.hide().removeClass('show');
next.fadeIn().addClass('show');
setTimeout(slideShow, 3000);
}