本章介绍两个关键字[HTML5]和[Jquery Mobile],简单说这二者的关系是:HTML5做为主体,Jquery Mobile在HTML5的基础上对其进行了优化、装饰。javascript
HTML5你们早就不陌生了,HTML最新版本,提供了不少富客户端功能支持,可是在台式系统由于受到某些浏览器限制发展缓慢,而移动设备由于没有旧包袱,全部厂家都在向HTML5靠齐,所以移动设备(特别是最新的设备)的浏览器对HTML5支持度很是高。因此大多数智能移动设备上都能跑HTML5应用。css
关于HTML5,并非你想像中的那么神秘。说白了,HTML5功能也是由HTML标签来实现,只是这些标签之前没有出现过,你能够像之前编写普通html页面那样添加上HTML5某些新特性标签,而后在支持HTML5的浏览器(好比chrome)上运行。想比较全面了解HTML5,我建议新手花一两个小时过一遍w3cschool的HTML5教程,很是简洁,可是能让你了解什么叫HTML5。html
jQuery Mobile是用于建立移动web应用的前端开发框架,可使用于智能手机与平板电脑,它使用 HTML5 & CSS3 最小的脚原本布局网页。你们都知道,HTML原生的控件并非那么“炫”,Jquery Mobile的主要做用之一是帮助不懂UI的开发人员让本身的HTML有“炫”的感受。另外Jquery Mobile对HTML还提供了一些性能上的优化(好比Ajax转场,提升页面切换速度),而且提供了一些新的js事件供开发者调用。注:Jquery Mobile依赖于Jquery,因此HTML须要引用Jquery。前端
Jquery Mobile须要学习的内容蛮多的,我建议新手全面地过一遍Jquery Mobile的教程再作应用,我除了看w3cschool的教程外,还看了这位做者的文章,最近还发现Jquer Mobile中文API网站也很不错。html5
首先到jquery mobile官网下载本身须要的版本,默认下载下来的文件包含Jquery Mobile和Jquery的js,同时也提供了不少Demo供参考。java
注:*.min.*系列是压缩过的文件,文件大小要比完整源码小不少,应用正式上线时最好用min文件,可以提升页面加载文件效率。jquery
而后随意建一个HTML文件,注意页面头部要有<!DOCTYPE html>标签,页面引用如下三个必备文件(文件位置根据你的HTML相对位置来决定)。web
在<Body>标签中编写页面元素,跟传统的HTML有所不一样的是,jquery mobile把一个<div data-role="page">当作一个页面,在page中能够定义三个主体区:头部header、内容区content和底部footer,一个简单的示例以下。chrome
前面说了一个<div data-role="page">标签表示一个页面,那么jquery mobile支持一个<body>标签中存在多个page,它们的ID必定要不一样,便于区分。页面初次加载时,默认只显示第一个page!而多个页面切换很是简单,只须要在跳转连接中加[#目标page的ID]便可。以下代码实现的功能是:点击[页面②]连接后页面切换到id为pagetwo的页面,而后点击[页面①],又会回到pageone页面。api
若是要让第二个页面以dialog弹出框的形式显示,则只须要在跳转的<a>标签中增长一个属性[data-rel="dialog"]。不过若是pagetwo只有一个data-role=content内容区的话,弹出框是没有关闭按钮的,因此你须要给pagetwo定义一个header。
至于其它jquery mobile控件,这里就不赘述了,你们能够自行去相关教程网站学习了解。
下面介绍一点jquery mobile的事件和方法。
jquery mobile用得最多的事件恐怕是pageinit,这个是指定page加载完成时调用的。而jquery的ready()反而用得比较少(这个后面章节说)。
而后还有一些好玩的屏幕左右滑动事件和上下滚动事件。
还有一个是页面转场时用到的pagebeforechange事件,用于给第二个页面进行参数传递,你只要输入pagebeforechange关键字,网上全是说它进行参数传递的文章。
传统页面的跳转多是经过window.location来完成,jquery mobile提供了自带的转场方法,这种跳转是经过Ajax加载第二个页面,从速度上要比第一个高,可是用这种方式要注意不少问题(这个后面文章说明)。
注:若是使用<a href="xx/tow.html">的形式到下一页,默认也是使用jquery mobile的changePage跳转的。
下面来一个完整的示例,这个示例在chrome下就看获得效果,下面代码中有不少注释说明,你们自行消化理解吧。
这段是2014-4-14补充。
在愈来愈深刻的开发学习中,发现了jquery mobile不少须要注意的地方,这里统一说明。
一、全部HTML元素几乎都被jquery mobile更改过,由于JQM在作页面渲染的时候,为了使样式跟客户端程序类似, 隐藏了原始的标签而后用一些新的标签和自定义的样式来表现原标签,其实新样式的标签已经不是原来的标签。
好比页面有一个ListView,你想经过javascript动态append一个新的ListView,这时最终效果绝对不是JqueryMobile提供的那种样式(这个能够经过桌面浏览器看代码知道)。要想让动态建立的元素被Jquery Mobile渲染,就必须调用它提供的一些方法来刷新当前组件。具体的内容可参考这个博客《jQuery Mobile动态刷新页面样式》
二、移动设备javascript调试问题,在开发中常常会有一些javascript错误,最头疼的是不知道怎么调试,若是手机也有“开发者调试模式”就行了,惋惜没有!根据我目前的经验,调试能够用两种方法:一个拷贝代码到电脑,经过PC浏览器来调试;另外一个看LogCat日志,javascript报错都会在日志中体现,以下图所示,首先看错误信息是什么,而后看错误文件在哪儿,最后一个关键是看提示在文件哪一行出问题,而后你就能够跟过去看问题所在了。下图异常缘由是bless.insurer.js文件第25行,名为"DOM"的对象不存在。
三、对于动态操做Button按钮,最好使用<a>标签来实现,而<input type="button">彻底不推荐,由于jquery mobile为了渲染出按钮的样式,会把input button隐藏,而用div来替代其内容,这时开发人员想经过javascript来隐藏/显示/更改按钮文字的话,是没效果的。
对按钮的经常使用操做以下:
HTMl5和JQuery Mobile内容很是丰富,这里展现的只是冰山一角,我也知道得很少,但愿在后面项目开发中积累更多的知识。