我有以下html....
<ul id="navs">
<li class="activenav">one</li>
<li>two</li>
<li>three</li>
<li>four</li>
</ul>
.css。。。
.activenav{
background-color: red;
}
jquery....
//$(window).load(function(){
var $curli = $('#navs .activenav');
setInterval(function(){
$('#navs .activenav').removeClass('activenav');
$curli.next().addClass('activenav');
}, 2000);
$curli = $('#navs .activenav');
//});
关键问题是它只是第一次运行。我需要从当前.activenav
的 li 设置下一个的背景颜色。而且我也需要在负载函数中执行此操作,但目前我已经评论说,即使是外部负载功能也不起作用。
演示
尝试
var $navlis = $('#navs li')
setInterval(function(){
var $next = $navlis.filter('.activenav').removeClass('activenav').next();
if(!$next.length){
$next = $navlis.first();
}
console.log($next)
$next.addClass('activenav');
}, 2000);
演示:小提琴
查看演示
setInterval(function () {
var $curli = $('#navs .activenav');
var $next = $curli.next();
$curli.removeClass('activenav');
if (!$next.length) {
$('#navs li').first().addClass('activenav');
} else {
$next.addClass('activenav');
}
ind++;
}, 1000);
$curli = $('#navs .activenav');
即使
当前active
元素是列表的最后一个元素,这也将处理。
var ul = $('#navs');
function switchActive(){
var li = ul.find('.activenav'), next;
if(li.is(':last')){
next = ul.find('li:first');
}else{
next = li.next();
}
li.removeClass('activenav');
next.addClass('activenav');
}
switchActive();
每次都需要调用switchActive
才能进行下一步切换。这是相同的 http://jsfiddle.net/W4p3P/