- 浏览: 187435 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Errorize:
一个用servlet实现导出csv文件的实例 -
wendellhu:
求monkey talk应用文档的解压密码
monkey talk应用文档 -
wendellhu:
加密的?
monkey talk应用文档 -
hugang357:
hslh22 写道不错的资源,可以使用,只是没有最大最小值的限 ...
数字微调输入框 -
hslh22:
不错的资源,可以使用,只是没有最大最小值的限制,需要自己去加逻 ...
数字微调输入框
从jQuery Mobile出现之前,介绍过他将支持的各个平台。现在jQuery Mobile框架已经发布,虽然他出现的时间并不长,但是它的质量却有了很大的改善。实际上,它的许多子系统都已经重新编写了(为了改善代码的清晰度和性能),跨浏览器兼容性在质量上也有了很大的提升。
以前,我使用过jQTouch和Sencha Touch。它们各有优缺点,但是我更喜欢把注意力放在jQuery Mobile开发上。现在,我将会为您讲述如何创建一个简单的应用程序,这个应用程序只有几个页面,可以支持Twitter,带有Google Maps功能,以及一些基本的元素。让我们开始吧!
首先,我们添加框架和样式。
- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.css" />
- <script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
- <script src="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.js"></script>
现在,让我们来创建页面。这里我们应该注意一下jQuery Mobile和jQTouch的相似性——整个应用程序就是一个html页面,在这个html页面中,特殊标记的div就是这个应用程序的“页面”。在它的基础表单中,这样的“应用程序页面”如下所示:
- <div data-role="page">
- <div data-role="header">...</div>
- <div data-role="content">...</div>
- <div data-role="footer">...</div>
- </div>
“data-role”参数用来设置div的功能:页面,表头,页面的内容或页脚。另外,必须为data-role="page"的div设置“id”参数才能对这个应用程序进行导航。
另外一个值得一提的参数是“data-theme”。这个参数可以应用到所有的页面元素上,它可以决定使用哪个默认的样式。在这篇文档中,你可以找到一些可用的主题的例子(请点击查阅)。
在我们的应用程序的主页上应该有一个菜单,菜单项分别指向使用这些例子的页面。要创建这样一个菜单,我们需要添加一个ul列表。如下所示:
- <ul data-role="listview" data-inset="true" data-theme="a">
- <li><a href="#twitter_page">Twitter example</a></li>
- <li><a href="#map_page">Map example</a></li>
- <li><a href="#search">Search example</a></li>
- <li><a href="#about">About</a></li>
- </ul>
ul标签的参数:
◆data-role="listview"— 表示这是一个你想要应用样式的列表。
◆data-inset="true" — 非全屏显示一个列表,如果你的目的刚好相反,可以把它设置成“false”。
◆data-theme="a"- 使用哪个配色方案。
jQuery Mobile包含很多列表类型:简单的,带图标的,带图像数据的,等等。在这篇文档中,你可以找到一些例子(请点击查阅)。
此外,我还想把一个设置按钮添加到工具栏上。这是很容易做到的:
- <a href="#settings" data-icon="gear" class="ui-btn-right">Options</a>
就像你看到的一样,这个按钮可以把你导航到个性化的页面,在“gear”样式(data-icon="gear")中,它的外观是一个图标,它位于工具栏的右边。在这个框架中,有一套预置的图标。在这篇文档中,你可以看到一些例子(请点击查阅)。
最后,主页如下所示:
- <div data-role="page" id="main_page" data-theme="b">
- <div data-role="header" >
- <h1 id="twi_acc">Home page</h1>
- <a href="#settings" data-icon="gear" class="ui-btn-right">Options</a>
- </div>
- <div data-role="content" >
- <ul data-role="listview" data-inset="true" data-theme="a">
- <li><a href="#twitter_page">Twitter example</a></li>
- <li><a href="#map_page">Map example</a></li> <li><a href="#search">Search example</a></li>
- <li><a href="#about">About</a></li>
- </ul>
- </div>
- <div data-role="footer">
- </div>
- </div>
现在,让我们来创建其他的页面。我们将会把注意力集中在设置页面上。这里我们将会放置一些表单元素。在这篇文档中,你可以找到可用的表单元素的完整列表(请点击查阅)。
根据指南,你应该把所有元素都放到一个特定的div中:
- <div data-role="fieldcontain">
- </div>
让我们按照这条建议来行事。现在,我们把下面这些元素放在表单上。
input域:
- <label for="name">My name:</label>
- <input type="text" name="name" id="name" value="" />
文本域:
- <label for="textarea">About myself:</label>
- <textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
滑块,设置它的最大值,最小值和当前值:
- <label for="slider">Value this site:</label>
- <input type="range" name="slider" id="slider" value="0" min="-50" max="50" />
选项:
- <label for="slider2">Value this site:</label>
- <select name="slider2" id="slider2" data-role="slider">
- <option value="off">Like</option>
- <option value="on">Dislike</option>
- </select>
选择器:
- <select name="select-choice-1" id="select-choice-1">
- <option value="standard">Tired</option>
- <option value="standard">Happy</option>
- <option value="standard">Sick</option>
- <option value="standard">Sunny</option>
- </select>
现在,我们来创建一个搜索页面。它主要由两个元素构成:input域和searchresult列表。
- <div data-role="content" >
- <label for="search">Search</label>
- <input type="search" name="password" id="search" value="" />
- <ul data-role="listview" data-inset="true" id="searchresult">
- </ul>
- </div>
现在,我们需要使用JavaScript,把input域绑定到keyup函数上,来填充searchresult列表。
- $("#search").keyup(function(){
- var res = shuffle(monthes);
- var list='';
- $.each(res, function(index, value) {
- list+='<li role="option" tabindex="0" data-theme="a" class="ui-btn ui-li ui-btn-up-a"><div class="ui-btn-inner"><div class="ui-btn-text">'+value+'</div><span class="ui-icon ui-icon-arrow-r"></span></div></li>';
- });
- $("#searchresult").html(list);
- });
关于这段代码,有几点需要说明一下。在第一行中,我们对现有的数组进行了“shuffle”。Shuffle函数如下所示:
- var shuffle = function(o){ //v1.0
- for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
- return o;
- };
然后,我们创建了一个列表。我们应该用这种方式来创建它,因为列表项是动态地添加到这个列表中的,为了挂载样式和参数,一个框架不会再处理它们了。
然后,我们使用anywhere函数,创建一个支持Twitter的页面。首先,我们应该连接那些库:
- <script src="http://platform.twitter.com/anywhere.js?id=key_value&v=1" type="text/javascript"></script>
为了得到相应的Key,你必须在这个页面中注册一下(请点击查阅)。
然后,我们创建这个页面的代码:
- <div data-role="page" id="twitter_page" data-theme="b">
- <div data-role="header" >
- <h1>Simple twitter example</h1>
- </div>
- <div data-role="content" >
- <div id="twi_list"></div>
- </div>
- <div data-role="footer">
- </div>
- </div>
现在是最主要的东西了——JavaScript代码,当我们打开这个页面的时候,这些代码将会执行。要追踪这个事件,可以使用一个专门的事件——pageshow。关于其他的事件,具体可以参考(请点击查阅)。
- $('#twitter_page').live('pageshow',function(event, ui){
- twttr.anywhere(function(T) {
- T.User.find('andrebrov').timeline().first(20).each(function(status) {
- $('div#twi_list').append('<p>' + status.user.name + ': ' + status.text + '</p>');
- });
- });
- });
关于anywhere函数的使用方法,具体可以参考(请点击查阅)。当我们打开我们刚刚创建好的这个页面的时候,我们会发现,有一段时间,它一直是空白的,这是因为tweets正在载入。为了让用户知道这是怎么回事,我们将会添加一个spinner。代码如下所示:
- $('#twitter_page').live('pageshow',function(event, ui){
- twttr.anywhere(function(T) {
- $.mobile.pageLoading();
- var j=0;
- T.User.find('andrebrov').timeline().first(20).each(function(status) {
- $('div#twi_list').append('<p>' + status.user.name + ': ' + status.text + '</p>');
- j++;
- if (j==1){
- $.mobile.pageLoading(true);
- }
- });
- });
- });
在这篇文档中,你可以找到关于spinner,及其实用程序的详细信息(请点击查阅)。
现在,我们来创建地图页面。首先,选择合适的脚本
- <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
- <script type="text/javascript" src="http://www.google.com/jsapi"></script>
然后,我们创建这个页面
- <div data-role="page" id="map_page" data-theme="b">
- <div data-role="header" >
- <h1>Map example</h1>
- </div>
- <div data-role="content" >
- <div id="map_canvas"></div>
- </div>
- <div data-role="footer">
- </div>
- </div>
“map_canvas”元素将会包含这个地图。让我们来定义它的样式:
- #map_canvas{
- width:100%;
- height: 100%;
- position:relative;
- top:0px;
- }
现在,我们添加一段JavaScript代码,这段代码可以确定当前的位置,把这个位置显示在地图的中央,然后给这个位置添加一个标记。此外,在这个标记上,我们还可以某个把某个事件绑定在它的点击操作上。
- $('#map_page').live('pageshow',function(event, ui){
- navigator.geolocation.getCurrentPosition(function(location) {
- var point = new google.maps.LatLng(location.coords.latitude, location.coords.longitude);
- var myOptions = {
- zoom: 13,
- center: point,
- mapTypeId: google.maps.MapTypeId.ROADMAP
- };
- var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
- var marker = new google.maps.Marker({position: point,map: map});
- google.maps.event.addListener(marker, 'click', function() {
- alert("Current coodinates are: latitude "+location.coords.latitude+", longitude "+location.coords.longitude);
- });
- });
- });
最后,对于我来说,这个页面中最有趣的元素是:
完整的list-divider:
- <li data-role="list-divider" role="heading" tabindex="0" class="ui-li ui-li-divider ui-bar-b ui-corner-top"></li>
打开一个邮件客户端的链接:
- <li><a href="mailto:mailme@gmail.com" class="ui-link-inherit">EMail me</a></li>
指向电话号码的链接:
- <li><a href="tel:+79000000000" class="ui-link-inherit">Call me</a></li>
关于各种链接,具体可以参考这里!
总结
我们曾经对“四大主流移动Web开发框架”进行过介绍,其中jQuery Mobile项目宣布其要成为“完整的,统一的,移动UI架构”,jQuery Mobile核心项目也将继续为移动提供优化,我们也最为看好这个框架,希望本文能对大家有所帮助!
感谢大家,这便是51CTO的独家译文《如何在jQuery Mobile上编写一个简单的应用程序》。
原文名称:How to write a simple application on jQuery Mobile
发表评论
-
jQuery Mobile开发进阶:API扩展介绍
2012-08-08 02:29 0目前,jQuery Mobile是在HTML5 移动开发中的一 ... -
使用jQuery Mobile实现手机新闻浏览器(第二、三章)
2012-08-08 02:23 0http://mobile.51cto.com/app-sho ... -
使用jQuery Mobile实现手机新闻浏览器
2012-08-08 02:21 0在本文中,笔者将带你 ... -
经典收藏 50个jQuery Mobile开发技巧集萃
2012-08-08 02:16 0收集了50个出色的jQuery Mobile技巧 ... -
10个出色的jQuery Mobile插件
2012-08-08 02:14 0jQuery Mobile是一种用于开发web应用程序和移动网 ... -
15 款为jQuery Mobile定制的插件推荐
2012-08-08 02:12 0jQuery Mobile 1.1 已经发布了, 做为jQue ... -
jQuery Mobile组件:内容格式
2012-08-08 02:09 0在jQuery Mobile中页面内容是完全开放式的,但是jQ ... -
jQuery Mobile组件:按钮(button)
2012-08-08 02:07 0button是jQuery Mobile中的核 ... -
jQuery Mobile组件:工具栏
2012-08-08 02:05 0工具栏(Toolbar)一般用 ... -
jQuery Mobile组件:页面和对话框
2012-08-08 02:02 0jQuery Mobile包含自动通过AJAX装载带有返回按钮 ... -
移动web开发常用JavaScript代码
2012-08-08 01:55 0在开发移动网站过程中,有一些Javascript代码会经常用到 ... -
jQuery Mobile的响应布局
2012-08-08 01:53 0jQuery Mobile在为 HTML元素 ... -
jQuery Mobile使用指南
2012-08-08 01:52 0jQuery移动版框架可以轻松的帮助我们实现非常好看的、可跨设 ... -
jQuery Mobile主要特性
2012-08-08 01:49 0jQuery Mobile,顾名思义是基于jQuery构建让你 ... -
jQuery Mobile的API事件
2012-08-08 01:48 0jQuery Mobile提供了一些依 ... -
jQuery Mobile的API默认配置
2012-08-08 01:47 0与其他jquery项目(比如jQuery和jQ ... -
创建由jQuery Mobile驱动的移动web应用程序
2012-08-08 01:41 0jQuery 驱动着 ... -
jQuery Mobile简介:统一接口工具
2012-08-08 01:38 0jQuery 的移动策略可以简 ... -
8个优秀的jQuery Mobile教程
2012-08-08 01:34 0jQuery Mobile 是 jQuery 在手机上和平板设 ... -
jQuery Mobile学习笔记案例实现
2012-08-08 01:30 0jQuery Mobile学习笔记是本文要介绍的内容,主要是来 ...
相关推荐
为了实现跨浏览器兼容性,jQuery Mobile 自动处理了许多设备和浏览器的差异,确保应用程序在不同平台上一致的表现。随着时间的推移,框架不断优化,代码清晰度和性能都有显著提升。 总结来说,jQuery Mobile 提供了...
书籍《jQuery Mobile Develop and Design》的作者Krish Hadlock,拥有丰富的开发经验,他在书中提供了一个全面的入门指南,帮助读者通过一步步的指导学会编写代码,以创建移动网站。这本书覆盖了jQuery Mobile框架的...
**jQuery Mobile 知识点...综上所述,jQuery Mobile 通过简化开发流程和提供丰富的 UI 控件,极大地提升了移动 Web 应用的开发效率和用户体验。通过学习和实践本课件源码,你将能够熟练掌握这一强大的移动开发工具。
在标题“jquerymobile播放视频”中,我们关注的是如何在jQuery Mobile构建的应用中集成视频播放功能。这个功能对于提升用户体验至关重要,尤其是在移动设备上,用户可能希望通过点击或触摸屏幕来播放、暂停、控制...
虽然这个压缩包的标签是"Delphi",但jQuery Mobile通常与前端开发相关,而Delphi是用于创建桌面和移动应用程序的集成开发环境(IDE),主要用于编写用Pascal语言编写的原生应用程序。通常,Delphi开发者可能会将...
jQuery Mobile 就是这样一个框架,它专注于帮助开发者使用Web技术创建跨平台的移动应用程序。 **1.2 jQuery Mobile 兼容的移动平台** jQuery Mobile 被设计成能够兼容多种移动设备,包括但不限于: - **iPhone 和...
jQuery Mobile 是一个专为触摸设备设计的前端框架,它基于 jQuery 库,旨在简化移动Web应用程序的开发。本手册详细介绍了如何利用 jQuery Mobile 的功能和API来创建响应式、触控友好的网页和应用。对于从事移动开发...
jQuery Mobile是一个轻量级的、触控优化的框架,用于构建响应式的移动Web应用程序。它提供了丰富的UI组件和交互效果,使得开发者可以方便地创建美观且用户友好的界面。在这个例子中,jQuery Mobile被用来设计和管理...
jQuery Mobile 是一个强大的、响应式的前端框架,专为创建移动设备优化的 Web 应用程序而设计。这个框架基于 jQuery JavaScript 库,旨在简化跨平台开发,支持多种智能手机和平板设备,如 iOS、Android 和 Windows ...
书中提到了“Create Your First jQuery Mobile Application”(创建你的第一个jQuery Mobile应用程序),这表明书中应该有一部分是关于如何开始使用jQuery Mobile的教程,包括创建项目、设置环境以及编写基础的移动...
jQuery Mobile 是一个专门针对移动设备优化的前端框架,它提供了丰富的用户界面组件和交互效果,旨在简化移动 Web 应用程序的开发。这款框架基于 jQuery,使得开发者能够轻松创建跨平台、触摸友好的 HTML5 应用。 *...
2. **企业应用程序**:创建企业内部使用的移动应用,如 CRM 或 ERP 应用程序。 3. **电子商务**:构建移动商城或在线购物平台。 4. **教育应用**:开发教育类应用,如在线课程或互动教材。 5. **社交应用**:构建...
jQuery Mobile 是一款基于 HTML5 的移动设备框架,它为开发者提供了构建响应式网站、应用程序的能力。通过使用 jQuery Mobile,可以轻松地创建适用于不同屏幕尺寸的网页应用。本文将对使用 PhoneGap + jQuery Mobile...
jQuery Mobile 是一个轻量级、触控优化的前端框架,用于构建移动设备上的Web应用程序。它基于jQuery库,提供了一套完整的组件,包括导航、表单、按钮等,旨在简化移动Web开发。在这个主题中,我们将深入探讨如何利用...
本书通过详细的讲解和实例演示,帮助读者了解jQuery Mobile的各种功能和应用场景,从而能够利用这一强大的框架来构建高质量的移动Web应用程序。 #### 二、jQuery Mobile简介 **1.1 什么是jQuery Mobile** jQuery ...
- **核心概念**:此书旨在教授读者如何利用jQuery Mobile这一框架来开发高质量的移动Web应用程序。 - **目标受众**:本书适合对移动Web应用开发感兴趣的前端开发者、UI/UX设计师以及任何希望通过jQuery Mobile构建...