我正在尝试制作图像滑块。现在,我得到了滑块的基本部分 - 唯一的是滑块每5秒自动显示一张新图片(已经构建了)但是一旦用户将滑块菜单悬停,5秒计时器就不会停止
这是我的滑码;
var index = $(this).parent("li").index();
var item_y = $(this).parent("li").offset().top;
var item_x = $(this).parent("li").offset().left;
$("#slider li a").each(function(){
$(this).removeClass("active");
Cufon.refresh();
});
$(this).addClass("active");
$("#slider_arrow").css({
'top' : item_y,
'left' : item_x-109
});
$("#slider_image li").hide().each(function(i,v){
if (i == index) {
$(this).fadeIn("medium");
}
});
Cufon.refresh();
这实际上是 - 在悬停 - 动作。以下是每5秒钟发生一次的动作的代码。
setInterval(function(){
var current_index = $("#slider li a.active").parent("li").index();
var new_index = $("#slider li").eq((current_index+1));
if (new_index.length > 0)
{
new_index.children("a").mouseover();
}
else
{
$("#slider li:first-child").children("a").mouseover();
}
}, 5000);
所以我想要的是在用户触摸#slider li
菜单中的项目后立即重置5秒间隔。
我怎样才能做到这一点?
由于
答案 0 :(得分:0)
您必须存储间隔句柄,以便在需要时调用clearInterval()
。
var myinterval = setInterval(
....
, 5000);
$('#slider li').mouseenter(function() {
if(myinterval) clearInterval(myInterval);
};
答案 1 :(得分:0)
查看此答案,了解如何创建pause-able javascript timeout。
它应该运作良好。