SetInterval同时是Jquery的几个元素

时间:2018-03-16 22:30:48

标签: jquery setinterval

我有这段代码,点击评论按钮后附加评论。 (php通过其他功能处理)....

我想模拟每个评论是在特定时间发布的,并且一段时间后的设置间隔与每个li appendend独立工作。

问题

在代码段中显示,如果我发布评论设置间隔与它一起显示how long time ago它已发布(需要格式但它有想法)。

问题在于,无论何时发布新评论,设置间隔都会重新加载以前的所有时间,并显示所有评论的相同结果。



$('.comment').on('click', function(){
     		 timeIni=$.now();

          comment=$(".textarea").val();
            $("#comments").append("<li data-t='"+timeIni+"'>"+comment+" <span>1s</span>"+"</li>");
            
            $(".textarea").val("");
        
      //adding the time to looks like 
       /* */ setInterval(function(){ 
            time=$.now();
          tempo="time: "+time;
             $("#comments span").text(tempo);
	                          }, 2000);	
         
 


        });
&#13;
textarea{
height:30px;
width:200px;
border:1px solid red;
display:block;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>


     <ul id="comments"></ul>

      <textarea class=textarea></textarea>
       <input type=submit class="comment" value='comment' />
     
&#13;
&#13;
&#13;

我希望每个评论都显示自己的时间间隔,根据发布的时间。

其他尝试使用.each()

https://jsfiddle.net/s8650s18/16/

1 个答案:

答案 0 :(得分:0)

您需要使用var,let,const等关键字声明变量,否则变量将变为全局变量。所有这些归结为一个范围问题。

let timeIni = Number($.now()); 

以下是小提琴:https://jsfiddle.net/s8650s18/22/