2014-09-10 3 views
1

Привет, мне нужно выполнить функцию 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

ответ

1

Вы уже используете 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

+0

Это только одна часть моего кода slideId объявила верх кода, я не поставил весь код здесь, потому что вопрос будет сложным, если я добавлю, что здесь: D – Rajitha

+0

Все нормально. Я упомянул об этом на всякий случай. Я рад, что решение сработало для вас. – melancia

2

самое простое решение без изменения кода:

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

спасибо, что это тоже работает. Но я использую ниже, потому что мне нужна какая-то модификация. – Rajitha

Смежные вопросы