Как я могу установить тайм-аут для этого кода JQuery? - PullRequest
2 голосов
/ 20 сентября 2010

Это то, что я имею до сих пор.Я хочу установить таймаут для функции spid().

<script type="text/javascript">

$(document).ready(function() {  
    $("#spid").animate({top: '-110px' }, 600, 'easeOutBounce',
    function spid() {
       $(this).animate({top:"-=20px"},1000).animate({top:"+=20px"},1000);
       setTimeout("spid()",2000);
    });
});

Ответы [ 2 ]

0 голосов
/ 20 сентября 2010
$(function() {
    $("#spid").animate({top: '190px' }, 600,'linear' ,function() {
        (function spid() { 
            console.log('Test'); 
            $(this).animate({top:"+=20px"},1000).animate({top:"+=20px"},1000);
            setTimeout(spid,2000);
        })();   
    });
});

Существует проблема с this в приведенном выше коде, фрагмент кода ниже работает нормально

Редактировать :

$(function() {
  $("#spid").animate({top: '110px' }, 600,'linear' ,function() {
    var cache = $(this);
    (function spid() {
      cache.animate({top:"+=20px"},1000).animate({top:"-=20px"},1000);
      setTimeout(spid,2000);
    })();  
  });
});

Пожалуйста, проверьтекод http://jsbin.com/elaxa3

0 голосов
/ 20 сентября 2010

Вам просто нужно передать функцию.

setTimeout( spid,2000 );

Или вы также можете просто использовать setInterval.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...