函数调用不动

来源:4-3 添加及查看Task(3)

Rey4

2018-02-15

;(function () {
   'use strict';

   var $form_add_task = $('.add-task'),
   task_list = [];



   init();

   $form_add_task.on('submit',function (e) {
       var new_task = {},$input;
       e.preventDefault();//阻止默认提交
       $input = $(this).find('#add-content').val();//获取新task值
       if(!$input)//如果内容为空直接结束
           return;
       add_task(new_task);//存新task
       if(add_task(new_task)) {
           render_task_list();//刷新
           $input.val('') ;
       }
       console.log("submit");
   });

   function add_task(new_task) {
       task_list.push(new_task);//将新task推入task_list
       store.set('task_list',task_list);//更新local storage
       console.log('add_task');
   }
   
   function init() {
       console.log('init');
       task_list = store.get('task_list') || [];//初始化task_list若没有内容则返回空数组
       if(task_list.length)
           render_task_list();
       return true;
   }
   
   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_tpl(task_list[i]);
           $task_list.append($task);
       }
       console.log('render_task_list');
   }

   function render_task_tpl(data) {
       console.log('render_task_tpl');
       var list_item_tpl = '<div class="task-item">\n' +
           '                <span><input type="checkbox" name="" id=""></span>\n' +
           '                <span class="task-content">'+data.content+'</span>\n' +
           '<span class="fr">'+
           '                <span class="action">删除</span>\n' +
           '                <span class="action">详情</span>\n' +
           '</span>'+
           '            </div>';//模板
       return $(list_item_tpl);
   }
})();


其中init()中的if我给值1的话,剩下的函数都调用了,一换回.length就不调用。看起来像数据根本就没交上去

心态崩了

写回答

1回答

DavidXu1985

2018-03-02

  1. 如果你把if里面的语句写在下一行,那最好能加上{};

  2. 没有必要加return true; 你在调用init()时不需要对任何东西赋值为true;

  3. 你可以先尝试打印下初始情况下task_list.length的值,看下当前的值是否大于0,如果大于0就会渲染整个task list。如果等于0,就说明里面并没有值。当然,如果你确定里面肯定有值的情况下,最好检查下local storage里面是否有值。

0
0

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

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

1219 学习 · 161 问题

查看课程