我无法完成这项工作:在我的画廊中,如果我单击“项目符号”(当 setInterval 已经运行时),则会出现错误,例如:
当我让画廊运行时:编辑:单击项目符号无法正常工作:
var current = 0;
/* click on BULLETS : i think the problem is in this function */
pts.live('click', function () {
var index = $(this).index();
clearInterval(timer);
current = index-1;
timer = setInterval(function() { showImage(current) },2000);
return false;
});
编辑:感谢 Gavriel,确实使用 addClass 似乎更好!但我无法修复单击项目符号:当我单击项目符号时,我想“停止”间隔并直接转到我单击的图像。是否可以?当我尝试它时(请参见下文),“当前”图像保持原样,它保持 1-2 秒,然后再次开始间隔,好像什么也没发生......你知道吗?
/* click on BULLETS : */
pts.live('click', function () {
var index = $(this).index();
clearInterval(timer);
li.removeClass('next');
li.eq(index).addClass('next');
showImage();
timer = setInterval(function() { nextImage() }, 1000);
return false;
});
//TIMER
var timer = setInterval(function() { nextImage() }, 1000);
li.eq(0).addClass('next');
function nextImage(){
var index = $('#contG').find('li:.next').index();
$('#contG').find('li:.next').removeClass('next').addClass('current');
/*design bullet */
var pts_li = $("#points").find('ul').find('li');
pts_li.removeClass('activ');
/* limit */
var total = li.length; //3
if (index+1>total-1) {
index = 0;
} else {
index = index+1;
}
li.eq(index).removeClass('current').addClass('next');
pts_li.eq(index).addClass('activ');
showImage();
}
/* SHOWIMAGE */
function showImage(){
//clearInterval(timer);
$('#contG').find('li:.next').fadeIn("slow");//FADEIN
$('#contG').find('li:.current').fadeOut("slow");//FADEOUT
}
编辑 N°2:最后的战斗
好的,我终于找到了解决方法... :-) 谢谢 Firebug:
这是代码:
pts.live('click', function () {
var index = $(this).index();
clearInterval(timer);
$('#contG').find('li:.next').removeClass('next').addClass('current');
li.eq(index).removeClass('current').addClass('next');
showImage();
timer = setInterval(function() { nextImage() }, 2500);
return false;
});
非常感谢