码迷,mamicode.com
首页 > 数据库 > 详细

使用jquery.mobile和WebSQL实现记事本功能

时间:2015-10-08 22:48:00      阅读:821      评论:0      收藏:0      [点我收藏+]

标签:

1、记事本列表页

1.1、页面结构与样式:

<div data-role="page" id="home">
    <div data-role="header">
        <a href="javascript:void(0);" data-icon="delete" id="del">删除</a>
        <h2>记事本</h2>
        <a href="javascript:void(0);" data-icon="plus" class="ui-btn-right" id="new">新增</a>
    </div>
    <div data-role="content">
        <ul id="list" data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="快速搜索">

        </ul>
    </div>
</div>

1.2、功能脚本:

$(function () {
     var db;
     //设置数据库
        var dbsize = 2 * 2014 * 1024;
        db = openDatabase("todo", "", "", dbsize);
        db.transaction(function (tx) {
            tx.executeSql("CREATE TABLE IF NOT EXISTS notes (id integer PRIMARY KEY,title char(50),inputMemo text,last_date datetime)");
        });

        noteList();       
})

    //显示列表
    function noteList() {
        $("ul").empty();
        var note = "";
        db.transaction(function (tx) {
            //显示list
            tx.executeSql("SELECT id,title,inputMemo,last_date FROM notes", [],
                    function (tx, result) {
                        if (result.rows.length > 0) {
                            for (var i = 0; i < result.rows.length; i++) {
                                item = result.rows.item(i);
                                note += "<li id=" + item["id"] + "><a href=‘#‘><h3>" + item["title"] + "</h3><p>" + item["inputMemo"] + "</p></a></li>";
                            }
                        }
                        $("#list").append(note);
                        $("#list").listview("refresh");
                    }, function (e) {
                        alert("查找出错:" + e.message);
                    }
            );
        });
    };    

1.3、显示结果:

技术分享

 

2、显示详情

2.1、页面结构与样式:

<!--//记事详情-->
<div data-role="dialog" id="viewNote">
    <div data-role="header"><h1 id="viewTitle">记事</h1></div>
    <div data-role="content">
        <p id="viewMemo">内容</p>
    </div>
    <div data-role="footer">
        <p id="last_date">日期</p>
    </div>
</div>

2.2、功能脚本:

    $("#list").on("click", "li", showinfo);

    //显示详情
    function showinfo(){
        $("#viewTitle").html("");
        $("#viewMemo").html("");
        var value=parseInt($(this).attr("id"));
        db.transaction(function (tx) {
            //显示list
            tx.executeSql("SELECT id,title,inputMemo,last_date FROM notes WHERE id=?", [value],
                    function (tx, result) {
                        if (result.rows.length > 0) {
                            for (var i = 0; i < result.rows.length; i++) {
                                item = result.rows.item(i);
                                $("#viewTitle").html(item["title"]);
                                $("#viewMemo").html(item["inputMemo"]);
                                $("#last_date").html("创建日期:"+ item["last_date"]);
                            }
                        }
                        $.mobile.changePage("#viewNote",{});
                    }, function (e) {
                        alert("查找出错:" + e.message);
                    }
            );
        });
    };

2.3、显示结果:

技术分享

3、添加新记事

3.1、页面结构与样式:

<!--//新增页-->
<div data-role="dialog" id="addNote">
    <div data-role="header"><h1>新增记事</h1></div>
    <div data-role="content">
        <input type="text" id="title">
        <textarea cols="40" rows="8" id="inputMemo"></textarea>
        <hr>
        <a href="javascript:void(0);" data-role="button" id="save">保存</a>
    </div>
</div>

3.2、功能脚本:

//打开新页面

//添加新记事
    $("#new").on("click", addnew);
    $("#addNote").on("pageshow", function () 
            $("#title").val("");
            $("#inputMemo").val("");
            $("#title").focus();
        });
    //添加
    function addnew() {
        $.mobile.changePage("#addNote", {});//打开新页面
    };
        $("#save").on("click", save);

    //新建记事
    function save() {
        var title = $("#title").val();
        var inputMemo = $("#inputMemo").val();
        db.transaction(function (tx) {
            //新增数据
            tx.executeSql("INSERT INTO notes(title,inputMemo,last_date) values(?,?,datetime(‘now‘,‘localtime‘))", [title, inputMemo],
                    function (tx, result) {
                        $(‘.ui-dialog‘).dialog("close");
                        noteList();
                    }, function (e) {
                        alert("新增数据错误:" + e.message);
                    });
        });
    };

3.3、显示结果:

技术分享

4、删除记事

4.1、功能脚本:

        $("#del").on("click", showdelbtn);
        $("#home").on("click", ".css_btn_class", function () {
            if (confirm("确定执行删除操作?")) {
                var value = $(this).next("li").attr("id");
                db.transaction(function (tx) {
                    tx.executeSql("DELETE FROM notes WHERE  id=?", [value], function (tx, result) {
                        noteList();
                    }, function (e) {
                        alertmodal("删除出错:" + e.message);
                        $("button").remove();
                    });
                });
            }
        });

    //删除按钮
    function showdelbtn() {
        if ($("button").length <= 0) {
            var DeleteBtn = $("<button>Delete</button>").prop({‘class‘: ‘css_btn_class‘});
            $("li:visible").before(DeleteBtn);
        }
    };

4.2、显示结果:

技术分享

5、数据库:

技术分享

好不容易照着书写完了,才发现火狐根本用不了这种数据库。只能用谷歌来显示一下,惨兮兮。不过也算是一种体验了

使用jquery.mobile和WebSQL实现记事本功能

标签:

原文地址:http://www.cnblogs.com/sanqianjin/p/4862473.html

(4)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!