有没有人可以解释我这段jquery代码?我坚持使用变量current
和next
。他们实际检索的是什么?
function rotate() {
//Get the first image
var current = ($('#images .image.show')? $('#images .image.show') : $('#images .image:first'));
if ( current.length == 0 ) current = $('#images .image:first');
//Get next image, when it reaches the end, rotate it back to the first image
var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('#images .image:first') :current.next()) : $('#images .image:first'));
//Un-comment the 3 lines below to get the images in random order
//var sibs = current.siblings();
//var rndNum = Math.floor(Math.random() * sibs.length );
//var next = $( sibs[ rndNum ] );
//Set the fade in effect for the next image, the show class has higher z-index
next.css({opacity: 0.0}).addClass('show').animate({opacity: 1.0}, 1000);
//Hide the current image
current.animate({opacity: 0.0}, 1000).removeClass('show');
};
答案 0 :(得分:1)
那些是ternary or conditional operators
这些相当于:
if($('#images .image.show')){
var current = $('#images .image.show');
}
else{
var current = $('#images .image:first');
}
和
if(current.next().length){
if(current.next().hasClass('show')){
var next = $('#images .image:first');
}
else{
var next = current.next();
}
else{
var next = $('#images .image:first');
}