PhoneGap Table示例

PhoneGap示例

表格增删查改Demo


创建程序

cordova create tableOperate com.peneraly.table TabelOperate

增加ios平台支持

cordova platform add ios

创建HTML文件

<!DOCTYPE html>

<html>

    <head>

      <meta charset = "utf-8" />

      <title>Hello World</title>

      <link rel="stylesheet" type="text/css" href="css/index.css">

    </head>

    <body>

        <body>

            <img src="img/header.png" width="100%" />

            <header>

                <hr>

                <h1 id="table-title">表格信息插入Demo</h1>

            </header>

            <div id="button-line">

                <button type="button" class="addToDo" id="add-info" >

                    <img src="img/button_addtodo.png">

                </button>

                <button type="button" class="removeTasks" id="del-selected" >

                    <img src="img/button_removetasks.png">

                </button>

            </div>

            <br/><br/>  

            <table id="data-table" width="100%" border="1">  


            </table>  

        </body>  

        <script type="text/javascript" src="js/jquery.min.js"></script>

        <script type="text/javascript" src="js/table.js"></script>


    </body>

</html>

增加js文件

(function(){

    // 操作表格数据

    var TableData =  function () {

        var self = this;

        this.datalist = [];


        // 初始化,映射dom和js变量

        this.init = function(params) {


            this.tableid = params ? params.tableid || 'data-table' : 'data-table';

            this.addbtnid = params ? params.addbtnid || 'add-info' : 'add-info';

            this.delbtnid = params ? params.delbtnid || 'del-selected' : 'del-selected';


            this.initTable();

            this.initListener();

        }


        // 根据localStorage存储的内容,初始化列表

        this.initTable = function () {

            var datalist = JSON.parse(localStorage.getItem('todolist'));

            for(var item in datalist) {

                addRow(datalist[item]);

            }

        }


        // 弹出添加对话框,调用添加信息函数

        this.createRow = function () {

            var rowInfo = {};

            var inputInfo = prompt('please input the info:', '');

            if (inputInfo !== null) {

                if (inputInfo === '') {

                    alert('info cannot be null');

                }

                else {

                    rowInfo = {

                        'info': inputInfo,

                        'check': 0

                    };

                    addRow(rowInfo);

                }

            }

            self.saveToDoList();

        }


        // 信息行选中/选出

        this.checkboxClicked = function () {

            var table = document.getElementById(self.tableid);

            var len = table.rows.length;


            for (var i = 0; i < len; i++) {

                var row = table.rows[i];

                var checktd = row.cells[0].childNodes[0];

                var infotd = row.cells[1].childNodes[0];


                if (checktd !== null && checktd.checked === true) {

                    if (infotd !== '') {

                        $(infotd).css({

                            'text-decoration': 'line-through'

                        });

                    }

                }

                else {

                    $(infotd).css({

                        'text-decoration': 'none'

                    });

                }

            }


            self.saveToDoList();

        }


        // 利用localStorage存储当前数据状态

        this.saveToDoList = function () {

            var todoArray = {};

            var table = $('#' + self.tableid)[0];

            for(var i = 0, len = table.rows.length; i < len; i++) {

                var row = table.rows[i];

                var checked = row.cells[0].childNodes[0].checked;

                var info = row.cells[1].childNodes[0];


                todoArray['row' + i] = {

                    'check': checked ? '1' : '0',

                    'info': $(info).val()

                };

            }

            // 存入localStorage

            localStorage.setItem('todolist', JSON.stringify(todoArray));

        }


        // 查看信息

        this.viewSelectedRow = function (e) {

            var row = $(e).parent().parent();

            var info = row.find('.info').val();

            alert('本行信息: ' + info);

        }


        // 删除本行信息

        this.deleteSelectedRow = function (e) {

            var row = $(e).parent().parent();

            row.remove();

            self.saveToDoList();

        }


        // 事件监听

        this.initListener = function () {


            $('body').delegate('#' + self.addbtnid, 'click', function () {

                self.createRow();

            }).delegate('#' + self.delbtnid, 'click', function () {

               self.removeCompletedTasks();

            }).delegate('.check', 'click', function () {

                self.checkboxClicked();

            }).delegate('.view', 'click', function () {

                self.viewSelectedRow(this);

            }).delegate('.del', 'click', function () {

                self.deleteSelectedRow(this);

            }).delegate('.info', 'change', function () {

                self.saveToDoList();

            });

        }


        // 删除所有选中行

        this.removeCompletedTasks = function () {

            var table = document.getElementById(self.tableid);

            var len = table.rows.length;

            var dellist = [];

            for (var i = 0; i < len; i++) {

                var row = table.rows[i];

                var checked = row.cells[0].childNodes[0].checked;

                if (checked) {

                    table.deleteRow(i);

                    len--;

                    i--;

                }

            }


            self.saveToDoList();

        }


        // 添加信息

        function addRow(info) {


            var html = ''

                + '<tr>'

                +   '<td>'

                +       '<input type="checkbox" class="check" value=' + info.check + '">'

                +   '</td>'

                +   '<td>'

                +       '<input type="text" class="info" size="16" style="text-decoration: none;" value = "' + info.info + '">'

                +   '</td>'

                +   '<td>'

                +       '<input type="button" class="view">'

                +   '</td>'

                +   '<td>'

                +       '<input type="button" class="del">'

                +   '</td>'

                + '</tr>';


            $('#' + self.tableid).append($(html));

        }

    }


    var mytable = new TableData();

    mytable.init();

}())

添加CSS

在原Style.css中添加如下样式:

.addToDo {  

background-color: Transparent;  

border-color: Transparent;  


}  


.removeTasks {  

background-color: Transparent;  

border-color: Transparent;  


}  


.check {  

background-color: Transparent;  

background-image: url('../img/check_box.png');  

width: 34px;  

height: 32px;  

}  


.info {  

background-color: grey;  

}  


.view {   

background-color: Transparent;  

background-image: url('../img/button_view.png');  

width: 64px;  

height: 32px;  

}  


.del {   

background-color: Transparent;  

background-image: url('../img/button_delete.png');  

width: 64px;  

height: 32px;  


#table-title{

    color: #fff;


#button-line {

    text-align: center;

    margin-top: 20px;

}

运行

  1. 在电脑上安装phoneGap desktop
  2. 在手机上安装phoneGap
  3. 通过蓝牙进行连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值