Вход

Просмотр полной версии : Подскажите по новичку с проверкой if/else в jQyuery


shmep
13.12.2010, 22:55
Скрипт работает замечательно, пока не доходит до последнего пункта в списке, как нужно написать if чтобы он перепрыгивал с последнего пункта на первый, когда доходил до последнего?


#accordian .active {
display: block !important;
}
#accordian .txtsutra {
display: none;
}



<div id="accordian" class="sutra">
<div class="txtsutra" id="sutra_1">текст</div>
<div class="txtsutra" id="sutra_2">текст</div>
<div class="txtsutra" id="sutra_3">текст</div>
<div class="txtsutra" id="sutra_4">текст</div>



$(document).ready(function(){
$(".sutra .txtsutra:eq(<?php echo rand(1, 15); ?>)").show('fast').addClass("active");
$(".sled_a").click(function(){
$(".sutra .active").hide('fast');
if($(".sutra .txtsutra:last") == true){
$(".sutra .active").removeClass("active");
$(".sutra .txtsutra:first").addClass("active").show('fast');
} else {
$(".sutra .active").removeClass("active").next(".txtsutra").show('fast').addClass("active");
};
});

x-yuri
14.12.2010, 01:09
ты увяз в jQuery ;)
new List('#accordian', '.sled_a');

function List( el, a ){
this._items = $(el).find('.txtsutra');
var randIdx = Math.floor(Math.random()*this._items.length));
this.activate( randIdx );
$(a).click( this._onClick.of(this) );
}

List.prototype.activate = function( i ){
if( '_active' in this )
$(this._items[this._active]).hide('fast').removeClass('active');
this._active = i;
$(this._items[this._active]).show('fast').addClass('active');
}

List.prototype._onClick = function(){
var nextIdx = (this._active+1)%this._items.length;
this.activate( nextIdx );
}

Function.prototype.of = function( o ){
var f = this;
return function(){
return f.apply(o, arguments);
};
}

PeaceCoder
14.12.2010, 13:14
if($(".sutra .txtsutra:last") == true){
Ух блин да же так бывает оО

П.С. Изучите JQ сначала и его структуру, потом уже пытайтесь чтото писать. А по поводу кода. на выходе будет обьект в любом случае и соотв true всегда будет...