;(function(){
'use strict';
var $form_add_task = $('.add-task');
var task_list = [];
var $delete_task;
init();
$form_add_task.on('submit',function(e){
e.preventDefault();
var new_task = {};
var $input = $(this).find('input[name=content]');
new_task.content=$input.val();
if(!new_task.content) return ;
if(add_task(new_task)){
$input.val('');
}
})
$delete_task.on('click',function(){
var $this = $(this);
var $item = $this.parent().parent();
var index = $item.data('index');
console.log('index',index);
var tmp = confirm('ss');
tmp ? delete_task(index) : null;
})
function add_task(new_task){
task_list.push(new_task);
refresh_task_list();
return true;
}
function delete_task(index){
console.log('delete index',index);
if( index === undefined || !task_list[index]) return;
console.log('task_list[index]',task_list[index]);
delete task_list[index];
refresh_task_list();
}
function refresh_task_list(){
store.set('task_list',task_list);
render_task_list();
}
function init(){
//store.clear();
task_list = store.get('task_list') || [];
if(task_list.length){
render_task_list();
}
}
function render_task_list(){
var $task_list = $('.task-list');
$task_list.html('');
for(var i=0 ; i < task_list.length ; i++){
var $task = render_task_item(task_list[i],i);
$task_list.append($task);
}
$delete_task = $('.action.delete');
}
function render_task_item(data,index){
if (!data || index === undefined) return;
var list_item_tpl =
'<div class="task-item" data-index=" '+ index+' ">' +
'<span><input type="checkbox"></span>' +
'<span class="task-content"> ' + data.content + '</span>' +
'<span style="float:right;">'+
'<span class="action delete"> 删除</span>' +
'<span class="action"> 详细</span>' +
'</span>'+
'</div>' ;
return $(list_item_tpl);
}
})();这是我的代码 我看到删除的看完了 监听那个我先给去了 所以不要说代码没写完整
console的时候发现 index的值是有的 task_list【】里边只要自己写数字比如1 2 3也是可以delete掉的
但是只要把index传进去 就是undefined!!!!!!已经困扰我几个小时了!!!!!!!!!!!!!!求解答!!!!!!!!!!!!!