;(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!!!!!!已经困扰我几个小时了!!!!!!!!!!!!!!求解答!!!!!!!!!!!!!