日期:2014-05-16  浏览次数:20386 次

jquery背景轮换问题?求解!
本帖最后由 a756375788 于 2013-06-22 18:07:50 编辑
正在写一个背景轮换的功能,自动播放,上一张,下一张这三个功能都实现了,但是还有一个功能没能实现,请各位大侠帮忙:问题如下:

当我点击下一张或者上一张图片的时候,背景自动播放时间从0开始(自动播放时间我设置为3秒),也就是我点击下一张图片的时候,过三秒后再更换背景图;
而不是接我点击前的时间(现在遇到的问题就是,我在第2秒点击下一张的时候,1秒后它就又更换背景了,我需要的是同样3秒后才更换背景

我的代码如下:


$(document).ready(function () { 
 
$('.banner').css("backgroundImage","url(images/bg_1.jpg)");
  var m=$(".n_m_bn").find("img").length;
  var t=1;
  var time_1=3000;
  function show_bg(){
  
  if(t<m){
t++;  
  var a="url(images/bg_"+t+".jpg)";
  
  $('.banner').css("backgroundImage",a);
  
  }
  else{
  t=1;
  var a="url(images/bg_"+t+".jpg)";
  
    $('.banner').css("backgroundImage",a);
  }
  }
var setin=setInterval(show_bg,time_1);

$("#nextList").click(function(){
if(t<m){
  t++;
  var a="url(images/bg_"+t+".jpg)";
  
  $('.banner').css("backgroundImage",a);
  }
  else{
  t=1;
  var a="url(images/bg_"+t+".jpg)";
  
    $('.banner').css("backgroundImage",a);
  }
})

$("#prevList").click(function(){
if(t>1 && t<=m){
  t--;
  var a="url(images/bg_"+t+".jpg)";
  
  $('.banner').css("backgroundImage",a);
  }
  else{
  t=4;
  var a="url(images/bg_"+t+".jpg)";
  
    $('.banner').css("backgroundImage",a);
  }
})
jQuery JavaScript

------解决方案--------------------
点击的时候用clearInterval把之前发起的interval清掉。在点击函数的最后再重新发起一个interval
------解决方案--------------------
很简单的,在你每个click事件里,增加一个clearInterval(setin) 和一个setin=setInterval(show_bg,time_1);就可以了