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