task_list传值怎样都是undefined

来源:

wildestD3155780

2016-12-13

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

写回答

3回答

小月肖

2016-12-15

我捉摸着应该是$item.data('index');有问题  ,我对前端也不是很熟 ,对于这些函数的调用也不是很懂,希望有大神能够棒棒忙

0
1
wildestD3155780
我一直没看回复抱歉 其实发完问题隔天我就找到原因了 你绝对不会想到是【 data-index=" '+ index+' ">' +】这里 注意看我的代码 双引号和单引号之间我加了空格.......................................................................
2016-12-29
共1条回复

小月肖

2016-12-15

目前正在困扰中   

0
0

小月肖

2016-12-15

同上  求解   

0
0

6小时 jQuery开发一个前端应用

搭建一个清单应用,一次性掌握jQuery核心功能和使用技巧

1219 学习 · 161 问题

查看课程