使用jquery.mobile和WebSQL實現記事本功能

來源:互聯網
上載者:User

標籤:

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、資料庫:

好不容易照著書寫完了,才發現Firefox根本用不了這種資料庫。只能用Google來顯示一下,慘兮兮。不過也算是一種體驗了

使用jquery.mobile和WebSQL實現記事本功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.