实现jQuery Timer

时间:2013-02-04 17:17:24

标签: javascript jquery timer

我从数据库中获取一个笔记列表并将其显示到视图中,如果笔记不到15分钟,那么我将显示一个编辑按钮,允许用户内联编辑笔记并保存新信息。我有这个部分完全工作。我现在正在尝试将计时器连接到不到15分钟的音符,并在计时器启动时隐藏按钮。注:用户可以编辑多个音符,只要它们是< 15分钟。 我怎么会这样做,因为我不太熟悉jQuery和Javascript? 感谢任何回复,因为我对这个论坛很新,我不确定你是否需要代码或不回答这个问题。所以如果有人想看看它,我会把它拿出来。

3 个答案:

答案 0 :(得分:0)

我会将一个.editable类添加到仍然可编辑的注释中,并在不再删除时删除它。 您可以在data-time =“1359999066”属性中保留注释的时间(假设它是unix时间戳)。如果您需要我暗示的代码的进一步帮助,请告诉我。

(function checkTimer() {
    $('.note.editable').each(function() {
        //check for timestamp, remove .editable and hide button
    });
    if ( $('.note.editable').length ) setTimeout(checkTimer, 5000);
})();
// this will check every 5 seconds

答案 1 :(得分:0)

用法

    var timer = $.timer(function() {
            alert('This message was sent by a timer.');
    });

    timer.set({ time : 5000, autostart : true });

    timer.set(options);
    timer.play(reset);  // Boolean. Defaults to false.
    timer.pause();
    timer.stop();  // Pause and resets
    timer.toggle(reset);  // Boolean. Defaults to false.
    timer.once(time);  // Number. Defaults to 0.
    timer.isActive  // Returns true if timer is running
    timer.remaining // Remaining time when paused

http://code.google.com/p/jquery-timer/

它可能会解决您的问题..请参阅链接上的完整文章和演示

答案 2 :(得分:0)

在服务器端,您可以将数据属性附加到包含创建时间的每个注释:

<div class="note" data-creation="1360000265027">
   <!-- milliseconds from 01.01.1970 (UTC) -->
   <p>My content</p>
   <button>edit</button>
</div>

现在您可以检查这是否超过15分钟:

(function checkTimer() {
     $('.note').each(function(){
         var creation = $(this).data('creation'),
              // time in milliseconds from 01.01.1970 (UTC) minus 15min (900000milsec)
              fifteenAgo = (new Date).getTime() - 9e5;
         if (creation <= fifteenAgo) {
              $(this).find('button').remove();
         }
    });
    if ( $('.note button').length ) setTimeout(checkTimer, 5000);
})();