值未在localStorage中删除

时间:2013-09-11 14:01:54

标签: javascript jquery html5 local-storage

我正在学习如何使用localStorage制作待办事项应用。我正在使用Blackberry 10 Jquery主题制作这个应用程序。问题是有时localStorage上的removeItem函数不起作用。

请参阅JSFiddle here

重现问题的步骤:

  1. 将项目插入列表。
  2. 通过滑动快速删除多个项目。
  3. 重新加载页面,看到有2-3个项目仍显示在屏幕上,不会被删除。
  4. 有时请重复此操作,直到出现问题为止。 这个问题的原因是什么?

    代码:

    HTML

    <div id="home" data-role="page" data-theme="a">
        <div data-role="content">
            <form id="tasks-form">
                <input type="text" name="text-input" id="task" autofocus placeholder="Enter Text Here" />
            </form>
            <div id="tasks"></div>
        </div>
    </div>
    

    javascipt的

            var i = 0;
           // Initial loading of tasks
           for( i = 0; i < localStorage.length; i++)
             $("#tasks").prepend("<li id='task-"+ i +"'>" + localStorage.getItem('task-'+i) +"</li>");
    
           // Add a task
           $("#tasks-form").submit(function() {
             if (  $("#task").val() !== "" ) {
               localStorage.setItem( "task-"+i, $("#task").val() );
               $("#tasks").prepend("<li id='task-"+i+"'>"+localStorage.getItem("task-"+i)+"</li>");
               $("#task-" + i).css('display', 'none');
               $("#task-" + i).slideDown();
               $("#task").val("");
               i++;
             }
             return false;
           });
    
    
           $(document.body).on("swiperight","li",function() {
             localStorage.removeItem($(this).attr("id"));
    
         $(this).animate(
                        {
                            'margin-left':'600px','opacity':'0'
                        },'swing',
                        function(){
    
                            $(this).slideUp('fast',function(){$(this).remove();});
                    }
                        );
    
             for(i=0; i<localStorage.length; i++) {
               if( !localStorage.getItem("task-"+i)) {
                 localStorage.setItem("task-"+i, localStorage.getItem('task-' + (i+1) ) );
                 localStorage.removeItem('task-'+ (i+1) );
               }
             }
           });
    

0 个答案:

没有答案