Я новичок в jQuery. Мне нужно #rev1
divs (#rev1
, #rev2
, #rev3
) "слайд" один за другим при нажатии на #arrowr
. Этот код работает, но после щелчка на #Arrowr
@#Rev3
он не #rev1
на #rev1
. Не могли бы вы указать мне, как это решить. Как я могу заставить divs менять один за другим, когда я нажимаю #arrowr
? И создать Loop? Пожалуйста! Извините за мой бедный английский.
<div id="reviewsc">
<div id="reviews">
<div id="rev1" class="revv">rev1</div>
<div id="rev2" class="rev">rev2</div>
<div id="rev3" class="rev">rev3</div>
</div>
<div id="arrowr">></div>
</div>
<style>
.rev {
margin-left: -9999px or opacity:0 or display:none;
}
;
.revv {
margin-left: 0px or opacity:1 or display:block;
}
;
</style>
$('div#arrowr').click(function () {
$('#rev1').removeClass('revv').addClass('rev').next().removeClass('rev').addClass('revv');
if ($('#rev2').hasClass('revv')) {
$('div#arrowr').click(function () {
$('#rev2').removeClass('revv').addClass('rev').next().removeClass('rev').addClass('revv');
});
}
if ($('#rev3').hasClass('revv')) {
$('div#arrowr').click(function () {
$('#rev3').removeClass('revv').addClass('rev');
$(this) // How i can go Back to my #REV1 Div? And start the cycle again
});
}
return false;
});
поскольку остальные скрыты по умолчанию:
var ctr = 1;
var max = $('#reviews').children().length;
$('div#arrowr').click(function () {
$('#rev'+ctr).removeClass('revv').addClass('rev');
ctr++;
if(ctr > max){ //ctr = max+1 => reset ctr
ctr = 1;
}
$('#rev'+ctr).removeClass('rev').addClass('revv');
});
для другого направления:
$('div#arrowl').click(function () {
$('#rev'+ctr).removeClass('revv').addClass('rev');
ctr--;
if(ctr == 0){ //ctr = 0 => reset ctr
ctr = max;
}
$('#rev'+ctr).removeClass('rev').addClass('revv');
});
здесь скрипка: http://jsfiddle.net/phgXu/2/