HBuilder开发App教程12-详情页,删除和退出

接近尾声

本节讲讲详情页,删除和退出,然后基本接近尾声了,希望大家有所收获。

详情页

说明

点击待办事项,我跳转到详情页,可以看到事项的详情

detail.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">

        <!-- mui -->
        <link type="text/css" rel="stylesheet" href="../@/css/mui.min.css"/>
        <script type="text/javascript" src="../@/js/mui.min.js"></script>
    </head>

    <body>
        <div class="mui-content-padded">
            <h4 id="detailTitle" style="text-align: center;">title</h4>
            <p id="detailContent">content</p>
        </div>

        <!-- jquery -->
        <script type="text/javascript" src="../@/js/lib/jquery-1.11.2.min.js"></script>
        <!-- qiao.js -->
        <script type="text/javascript" src="../@/js/lib/qiao.js"></script>
        <!-- app -->
        <script type="text/javascript" src="../@/js/app/detail.js"></script>
    </body>
</html>

index.js

// 详情
    detail = mui.preload(qiao.h.normalPage(‘detail‘));

在index中选哟将detail页面预加载进来。

list.js

// 查看详情
    qiao.on(‘#todolist li‘, ‘tap‘, function(){
        qiao.h.fire(‘detail‘, ‘detailItem‘, {id:$(this).data(‘id‘)});
    });

在list页面添加点击事件,然后fire到detail页面

detail.js

// 初始化
mui.init({
    keyEventBind : {
        backbutton : false,
        menubutton : false
    }
});

// 所有方法都放到这里
mui.plusReady(function(){
    window.addEventListener(‘detailItem‘, detailItemHandler);
});

// 展示待办事项
function detailItemHandler(event){
    qiao.h.indexPage().evalJS("showBackBtn();");

    var detailId =event.detail.id;
    var sql = ‘select * from t_plan_day_todo where id=‘ + detailId;
    qiao.h.query(qiao.h.db(), sql, function(res){
        if(res.rows.length > 0){
            var data = res.rows.item(0);
            $(‘#detailTitle‘).text(data.plan_title);
            $(‘#detailContent‘).html(data.plan_content);

            qiao.h.show(‘detail‘, ‘slide-in-right‘, 300);
        }
    });
}

detail中禁用无关按钮事件,然后监听从list页面fire过来的todoid,最后显示待办事项详情。

删除

说明

用到了mui的popover插件,当长按待办事项的时候会显示删除选项,点击删除后执行操作。

list.html

<div class="mui-popover">
            <div style="text-align:center;position:fixed;top:80px;width:90%;">
                <ul class="mui-table-view">
                    <li class="mui-table-view-cell">滴石-操作</li>
                    <li class="mui-table-view-cell delli">删除</li>
                </ul>
            </div>
        </div>

需要在页面添加如上代码。

list.js

// 删除
    qiao.on(‘.delli‘, ‘tap‘, delItem);
// 删除事项
function delItem(){
    if(tapId){
        qiao.h.update(qiao.h.db(), ‘delete from t_plan_day_todo where id=‘ + tapId);
        qiao.h.pop();
        initList();
    }
}

监听点击删除的事件,并执行删除操作,最后重新加载该页面。

退出

简单封装了mui的退出,如下:

// 退出
qiao.h.exit = function(){
    qiao.h.confirm(‘确定要退出吗?‘, function(){
        plus.runtime.quit();
    });
};

这里用到了一个提示框,相关代码如下:

// 提示框相关
qiao.h.modaloptions = {
    title     : ‘title‘,
    abtn    : ‘确定‘,
    cbtn    : [‘确定‘,‘取消‘],
    content    : ‘content‘
};
qiao.h.alert = function(options, ok){
    var opt = $.extend({}, qiao.h.modaloptions);

    opt.title = ‘提示‘;
    if(typeof options == ‘string‘){
        opt.content = options;
    }else{
        $.extend(opt, options);
    }

    plus.nativeUI.alert(opt.content, function(e){
        if(ok) ok();
    }, opt.title, opt.abtn);
};
qiao.h.confirm = function(options, ok, cancel){
    var opt = $.extend({}, qiao.h.modaloptions);

    opt.title = ‘确认操作‘;
    if(typeof options == ‘string‘){
        opt.content = options;
    }else{
        $.extend(opt, options);
    }

    plus.nativeUI.confirm(opt.content, function(e){
        var i = e.index;
        if(i == 0 && ok) ok();
        if(i == 1 && cancel) cancel();
    }, opt.title, opt.cbtn);
};
qiao.h.prompt = function(options, ok, cancel){
    var opt = $.extend({}, qiao.h.modaloptions);

    opt.title = ‘输入内容‘;
    if(typeof options == ‘string‘){
        opt.content = options;
    }else{
        $.extend(opt, options);
    }

    plus.nativeUI.prompt(opt.content, function(e){
        var i = e.index;
        if(i == 0 && ok) ok(e.value);
        if(i == 1 && cancel) cancel(e.value);
    }, opt.title, opt.content, opt.cbtn);
};

更多教程:

HBuilder开发App教程:http://uikoo9.com/book/detail/3

更多学习笔记:http://uikoo9.com/book

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 07:58:55

HBuilder开发App教程12-详情页,删除和退出的相关文章

HBuilder开发App教程07-列表页

说明 接着上节的内容,本节讲首页的list页面, 如果看过上一节你就会明白"首页"是由只有头部的index页面和列表list页面组成的, 本节涉及到: 1.几种页面的打开方式 2.websql的应用 3.页面内容的加载 4.页面实现 几种页面打开方式 如果看过以前的章节你会明白,在Hbuilder,mui中需要放弃href跳转, 而专用mui自带的页面打开方式,为什么?请浏览:http://ask.dcloud.net.cn/article/122 这里大概讲一下,详细讲解请关注下一节

HBuilder开发App教程06-首页

实战 前面几节基本是一些概念的普及, 正如前面提到的,本教程会以滴石作为范例进行解说, 有兴趣的能够先行下载体验一下.或者下载源代码研究下. 新建项目 打开HBuilder,在项目管理器中右键--新建--移动app,或者直接ctrl+n,a, 见到例如以下界面.填入项目名称,选择mui项目. 新建完毕后.默认生成的文件夹例如以下.基本和前端开发的文件夹结构类似. 连接手机 本教程临时以android为例,最后会另外解说ios手机的开发,大同小异. 用数据线连接android手机,将手机中的设置-

HBuilder开发App教程03-定制图标,启动页以及打包

helloworld 上次说到了helloworld.你应该已经能够新建项目.真机调试了, 这次来说说图标的定制,启动页的定制以及打包. 图标定制 假设不定制图标的话,默认会是博文顶部图表的样子, 你肯定不想这个样子,来吧.定制一个自己的图标吧. 打开项目下的manifest.json,选择底部的图标配置(老版本号需升级到最新版). 然后选择一个制作好的256*256大小的png,系统会自己主动生成各种大小的图标. 启动页定制 步骤和上面一样,至不要要选择启动图片配置一项. 然后依照各种图片大小

HBuilder开发App教程05-滴石和websql

滴石 介绍 滴石是用HBuilder开发的一款计划类app, 用到HBuilder,mui,nativejs以及h5一些特性. 预期 目前只开发到todolist级别, 以后计划做成日计划,月计划,年计划等计划类app. 网址 官网:http://uikoo9.com/dishi 开源:http://git.oschina.net/uikoo9/uikoo9-dishi 教程 以后HBuilder开发app以滴石为例,做一个简单的app. 功能介绍 列表页 列出要完成的事项,具体功能: 1.左滑

HBuilder开发App教程04-最难搞定的是mui

前言 前几篇说到一些HBuilder开发app的基础教程, 现在来说一下HBuilder开发app的难点,或者说是上手的难点, 就是mui, 如果你没有研究mui就贸然的上手HBuilder,那你的开发过程是痛苦的, 花一点时间研究下mui,对你之后开发app有很大的帮助. 网址 教程再好,也会有疏漏的地方,还需要你仔细阅读官方文档, 附地址:http://dcloudio.github.io/mui/ init mui封装了很多常用的页面方法,都需要在init中设置,例如: 1.和上拉加载,下

HBuilder开发App教程08-几种页面打开方式

说明 上节说了list页面的实现,其中关于几种页面的打开方式没有详细述说, 本节详细述说下几种页面打开方式的区别. 几种打开页面的方式 1.初始化时创建子页面 2.直接打开新页面 3.预加载页面 示例 1.初始化时创建子页面 mui.init({ subpages: [{ url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址 id: your - subpage - id, //子页面标志 styles: { top: subpage - top

HBuilder开发App教程10-完成事项

回顾 回顾一下之前的要点: 1.Hbuilder创建项目,真机调试 2.首页 3.列表页 4.侧滑菜单 5.websql 6.几种页面打开的方式 再讲下本节的要点: 1.fire方式页面间传值 2.再讲websql 完成事项 功能描述 左滑待办事项会出现完成按钮,点击按钮会将待办事项完成,并加入侧滑菜单, 过程 1.左滑出现完成按钮 2.点击按钮后将事项从待办表中删除 3.同时将事项加入完成表中 4.侧滑菜单显示完成事项 页面 涉及两个页面,一个是list,一个是menu, 为了让操作更流畅,所

HBuilder开发App教程09-侧滑菜单

侧滑菜单 功能 上节讲到了列表页,这节讲一个比较常用的功能,侧滑菜单, 在本app中策划菜单用来记录已经完成的事项. 实现方式 用Hbuilder实现类似侧滑菜单这样原生app功能,一般有两种实现方式,详见:这里. 一是webview实现,二是div模拟实现, 两者的区别是div实现简答,但是偶尔效果不是很好, 而webview实现稍微复杂,页面传值也复杂,但是效果好点,一般推荐webview实现方式. index.html 代码 index.js中需要添加如下代码, var main = nu

HBuilder开发App教程02-环境搭建,HelloWorld以及真机调试

环境搭建 前言 用HBuilder做开发,其实可以说是最简单的一种环境搭建了,甚至可以说没有环境需要搭建, 想想android开发的时候,相当痛苦,下载各种sdk,而且都需要翻墙,苦不堪言. 用HBuilder做开发,只需要基础的java环境,其余的android和ios环境统统不需要. HBuilder可以做到这一点,是因为: 1.将打包放到的云端,免去了本地搭建环境进行打包的痛苦, 2.将调试直接设置为真机调试,免去了各种模拟器调试的痛苦. java环境 只需要最基础的java环境,也就是c