jquery按钮点击功能自动执行时间延迟

问题描述:

嗨我需要做下面的jQuery的功能,而无需点击下一步按钮。我试过很多了,但这些不工作的任何一个可以给我一个正确的方式来做到这一点,请jquery按钮点击功能自动执行时间延迟

var clickNext = $(".next_button").click(function() { 
    var imgWidth = $("#slider_box_01").width(); 
    var numImgs = 16; 
    var count = 0; 

    slideId++; 

    if (slideId == 3) { 
     slideId = 0; 
    } 
    imageSlider(imgWidth, numImgs, count, slides, slideId); 

}); 

function imageSlider(imgWidth, numImgs, count, slides, slideId) { 

    var animation = setInterval(function() { 

     var position = -1 * (count * imgWidth); 

     $('#slider_box_01').find('.slider_image').css('margin-left', position); 


     count++; 

     if (count == numImgs) { 

      count = 0; 
      $('#slider_box_01').find('.slider_image').css('margin-left', 0 ); 

      $(".slider_image").attr("src", slides[slideId]); 

      clearInterval(animation); 

     } 
    }, 80); 

此功能工作得很好,如果我点击.next_button,但我需要做的,没有点击后的任何按钮每2秒加载一次我的网页。

+0

[WindowTimers.setInterval](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setInterval ) – melancia 2014-09-10 10:43:34

您已经在使用setInterval(),这正是您在这里需要的。

// When document is ready. 
$(function() { 
    // Couldn't find this variable declared anywhere in your code? 
    var slideId = 0; 

    // A function to wrap the code previously set to be executed 
    // on the click event. 
    function myFunction() { 
     var imgWidth = $("#slider_box_01").width(); 
     var numImgs = 16; 
     var count = 0; 

     slideId++; 

     if (slideId == 3) { 
      slideId = 0; 
     } 

     imageSlider(imgWidth, numImgs, count, slides, slideId); 
    } 

    function imageSlider(imgWidth, numImgs, count, slides, slideId) { 
     var animation = setInterval(function() { 
      var position = -1 * (count * imgWidth); 

      $('#slider_box_01').find('.slider_image').css('margin-left', position); 

      count++; 

      if (count == numImgs) { 
       count = 0; 
       $('#slider_box_01').find('.slider_image').css('margin-left', 0); 
       $(".slider_image").attr("src", slides[slideId]); 
       clearInterval(animation); 
      } 
     }, 80); 
    } 

    // Call the new function every 2 seconds. 
    setInterval(myFunction, 2000); 
}); 
+0

谢谢你真棒....我很新的jquery再次感谢朋友。 – Rajitha 2014-09-11 05:03:54

+0

这只是我的代码的一部分slideId声明了代码顶部,我没有把所有的代码放在这里,因为如果我在这里添加,问题会很复杂:D – Rajitha 2014-09-11 05:08:51

+0

没关系。我提到它以防万一。我很高兴该解决方案为你工作。 – melancia 2014-09-11 05:19:30

而没有任何代码变化的最简单的解决方案:

setInterval(function(){ 
    $(".next_button").click(); 
},2000); 
+0

谢谢这也可以..但我使用波纹管之一,因为我需要一些修改谢谢。 – Rajitha 2014-09-11 05:05:30