下面是我的HTML代码,我想从1st active
删除li
类,并将其添加到第二li
,反之亦然,每2秒使用jQuery自动生成一次。
<li class="">
<a href="#">
<img src="client_logo01.png">
</a>
</li>
<li class="active">
<a href="#">
<img src="client_logo02.png">
</a>
</li>
我正试着这样做。
$('ul li a').click(function() {
$('ul li.current').removeClass('active');
$(this).closest('li').addClass('active');
});
但它只适用于点击事件。
答案 0 :(得分:4)
很明显它只会在点击时执行,因为你只绑定了一个点击事件..
setInterval(function()
{
// Remove .active class from the active li, select next li sibling.
var next = $('ul li.active').removeClass('active').next('li');
// Did we reach the last element? Of so: select first sibling
if (!next.length) next = next.prevObject.siblings(':first');
// Add .active class to the li next in line.
next.addClass('active');
}, 2000);
在文档就绪时运行此命令,脚本每隔2秒将活动类改为下一个兄弟。
无论您的ul元素具有多少个孩子
,都会运行jsfiddle demo:http://jsfiddle.net/kg4huLrL/2/
答案 1 :(得分:1)
试试这个:从active
班级li
中移除active
班级,并将active
班级添加到其兄弟li
setInterval(function(){
var $active = $('ul li.active');
$active.removeClass('active');
$active.siblings().addClass('active');
},2000);
<强> Demo 强>
答案 2 :(得分:1)
您可能想要使用setInterval,请参阅有关如何使用它的帖子:
答案 3 :(得分:0)
setInterval(function() {
if($('ul').find('li.active').eq(0).next('li') != undefined) {
$('ul').find('li.active').eq(0).removeClass('active').next('li').addClass('active');
} else {
$('ul').find('li.active').eq(0).removeClass('active');
$('ul').find('li').eq(0).addClass('active');
}
}, 2000);