我正在制作清单,在此清单中您可以添加/删除任务,并为每项任务设置截止日期。截止日期等于当前时间时,会显示警告。
当只有一个任务时,它工作正常,但如果我有更多任务,它只显示第一个任务的警报。
当确认警报时,取消选中警报的任务复选框(右侧的绿色框),但这会取消选中所有任务的警报复选框,而不是仅取消确认。
猜猜这需要用数组左右完成,但是我没有让它工作..有谁知道如何解决这个问题?
提前Tx!
我正在链接到我在此fiddle.
中获得的所有内容HTML:
<div class='todo_list'>
<div class='add_list'>+ List</div><br>
<h3 contenteditable='true'>New List</h3>
<ul>
<li>
<input type='checkbox' class='task_status'>
<p class='task' contenteditable='true'> </p>
<input type='datetime-local'>
<input type='checkbox' class='alert_status'>
</li>
</ul>
<div class='add_task'>+</div><br>
</div>
jQuery(只有出现问题的部分,请参阅整个文档的小提琴)
setInterval(function checkAlerts(){
//Set current date & time
var date = new Date();
var month = date.getMonth()+1;
var day = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var currentDate = date.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' + ((''+day).length<2 ? '0' : '') + day + 'T' + ((''+hours).length<2 ? '0' : '') + hours + ':' + ((''+minutes).length<2 ? '0' : '') + minutes;
//Set task deadline
var taskDeadline = $('.alert_status:checked').parent().find("input[type='datetime-local']").val();
//Set task text
var taskText = $('.alert_status:checked').parent().children('p').html()
//Check if task deadline matched current time
if ( currentDate == taskDeadline) {
//If so, give an alert
if(confirm( taskText ) ){
//If confirmed, uncheck task alert
$('.alert_status:checked').prop('checked', false)
}
else{
//Do nothing
}
};
}, 3000);
答案 0 :(得分:1)
你走了 http://jsfiddle.net/hBz7R/5/
主要的变化是......
$.each($('.alert_status:checked'), function (index, value) {
var currentAlert = $(this);
// your code...
}