setInterval()不起作用

Imm*_*ude 3 javascript jquery function setinterval

我试图在setInterval()"1秒" 运行一个函数,但它有点问题.我所做的一切都是如图所示这里,但它不工作.

这是我的代码:

<script>
   function test(db_time)
   {
      var c_db_time= db_time/1000; 
      var current_time = new Date().getTime()/1000;
      return Math.round(current_time - c_db_time);
   }
   $(".elapsed_time").each(function() {
      var time_r = $(this).data('time_raw');
      var inter = $(this).html(time_ago(time_r));//parameter to function

      setInterval(inter,1000)
   });
</script>
Run Code Online (Sandbox Code Playgroud)

错误是:Uncaught SyntaxError:意外的标识符


感谢@Bommox和@Satpal 找到解决方案

 $(".elapsed_time").each(function() {
var time_r = $(this).data('time_raw');
    var self = $(this);
    var inter = function() {self.html(time_ago(time_r));}
    setInterval(inter, 1000);
  });
Run Code Online (Sandbox Code Playgroud)

Rol*_*nyi 7

进入setInterval函数的第一个参数,你应该传递一个函数或一个匿名函数

setInterval(function(){
    console.log("1s delayed")
},1000);
Run Code Online (Sandbox Code Playgroud)


Jor*_*lom 5

如前所述,第一个参数应该是函数:

 var self = $(this);
 var inter = function() {
     self.html(time_ago(time_r));
 }
 setInterval(inter, 1000);
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这会如你所愿地发挥作用.当函数运行时,不会`this`指向窗口? (6认同)
  • 在定义函数的位置无关紧要,变量`this`将始终引用调用函数上下文(并且可以由调用者更改) (2认同)