Reputation: 5801
i have ul like this
<ul>
<li>one</li>
<li>one</li>
<li>one</li>
</ul>
i want jquery code
current
classand i will never use a jquery plugin like cycle because i must do by my hand
Upvotes: 1
Views: 762
Reputation: 236122
CSS:
li {
display: none;
}
Javascript:
$(function() {
var $list = $('ul li');
$list.filter(':first').addClass('current');
setInterval(function() {
if( $list.filter('.current').index() !== $list.length - 1 ) {
$list.filter('.current').removeClass('current').next().addClass('current');
}
else {
$list.removeClass('current').filter(':first').addClass('current');
}
}, 2000);
});
Demo: http://www.jsfiddle.net/uQKX6/
Inspired by RightSaidFred:
$(function() {
var $list = $('ul li'),
tID = null,
i = 0;
function loop() {
alert($list.removeClass('current').slice(i, i+1).addClass('current')[0].id);
if( i < $list.length-1 ) i++;
else i = 0;
tID = setTimeout(loop, 2000);
}
$list.hover(function() {
clearTimeout(tID);
}, function() {
loop();
});
loop();
});
Demo: http://www.jsfiddle.net/uQKX6/4/
Upvotes: 3
Reputation: 11327
var lis = $('ul > li');
function switchClass(i) {
lis.eq(i).removeClass('current');
lis.eq(i = ++i % lis.length).addClass('current');
setTimeout(function() { switchClass(i); }, 2000);
}
switchClass(-1);
Upvotes: 1