jQuery Mobile高手必备的十大技巧和代码片段

本文转自51ito布加迪编译版本: http://mobile.51cto.com/hot-276160.htm
其中未发现英文原作链接,为尊重版权,google之后附上: http://www.webdesignerdepot.com/2011/05/10-handy-jquery-mobile-tips-and-snippets-to-get-you-started/

jQuery Mobile高手必备的十大技巧和代码片段

与任何新技术一样,常常难就难在如何开始入手。

有鉴于此,我们整理出了与jQuery Mobile库有关的我认为最便利的一些技巧、方法和代码片段。

由于本文不是旨在全面介绍使用jQuery Mobile库的入门知识,会忽略掉一些相当浅显的东西,而是直接探讨一些相当棘手的东西。

另外欢迎留言,告诉我们你觉得哪些代码片段很实用,以及你所知道的其他任何实用的代码片段。

1、完整的基本页面

我一再发现自己需要为基本页面建立完整的标记。正因为如此,下面是创建一个基本页面所需要的全部代码。

<!DOCTYPE html>
<html>
<head><title>Page Title</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" /><script src="http://code.jquery.com/jquery-1.9.1.min.js"></script><script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
</head>
<body><div data-role="page"><div data-role="header"><h1>Page Title</h1></div><!-- /header --><div data-role="content"><p>Page content goes here.</p></div><!-- /content --><div data-role="footer"><h4>Page Footer</h4></div><!-- /footer -->
</div><!-- /page --></body>
</html>

2、何处添加额外的jQuery调用

当我开始使用jQuery的这个优秀扩展时,立即发现自己需要在触发移动插件之前改动页面上的内容。

结果发现,建议的解决办法就是只要把传统的jQuery调用放在装入移动插件的引用之前。这样,你的jQuery命令就有机会在库装入之前运行。下面是要遵照的模式:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" /> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script>
<script>$(document).ready(function() { // Your jQuery commands go here before the mobile reference 
}); 
</script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script> 

何处添加额外的jQuery调用的代码

3、同时禁用所有链接的AJAX导航

尽管AJAX导航技术很出色,但有时候你倒希望禁用它。使用这一段jQuery代码,告诉jQuery Mobile库不要使用AJAX导航。

把它放在页面标题中jQuery Mobile库引用的后面。换句话说,库必须已经在该代码被引用之前装入完毕。

<script> $(document).ready(function() { // disable ajax nav 
  $.mobile.ajaxLinksEnabled = false; }); 
</script> 

同时禁用所有链接的AJAX导航

4、阻止一些关键项目被截断

库的一项特性(或者是缺点,就看你的需要了)在于,它能够智能化地截断很长的项目,以适应用户界面元素。

我发现在两种情况下这可能很烦人。首先在列表项目中,我更喜欢看到全部文本。其次是在脚注文本中。一旦你在这里有好多个字符,它似乎就会开始用“…”来截断。使用这个简单的CSS来覆盖这两种默认情况。

对于列表项目:

body .ui-li .ui-li-desc { white-space: normal;} 

对于脚注内容:

body .ui-footer .ui-title { white-space: normal; } 

 5、使用媒体查询来锁定设备

我在使用这个库时最先遇到的问题之一是,如何使用CSS来锁定设备(根据屏幕尺寸)。比如说,我想要为iPad设计两列布局、为智能手机设计单列布局。要做到这一点,最佳办法绝对是使用媒体查询。

只要一些简单的媒体查询已到位,你就能迅速让CSS锁定屏幕尺寸。有了这种锁定技术,我们就能依赖传统的CSS方法,根据可用的屏幕空间来迅速创建不同的布局。

这方面的两篇出色的文章是:

CSS-Tricks网站的《CSS媒体查询和使用可用空间》

Stuff and Nonsense网站的《切合实际的CSS3媒体查询》

6、用jQuery锁定平台

尽管我们很想为某些设备执行某些CSS,但我们也想只在特定的设备上运行jQuery。下面对来自Snipplr的一些代码作了改动,那样我很容易把jQuery的一部分隔离开来,以便根据用户的设备来运行。

var deviceAgent = navigator.userAgent.toLowerCase(); var agentID = deviceAgent.match(/(iphone|ipod|ipad|android)/); if(agentID.indexOf("iphone")>=0){ alert("iphone"); } if(agentID.indexOf("ipod")>=0){ alert("ipod"); } if(agentID.indexOf("ipad")>=0){ alert("ipad"); } if(agentID.indexOf("android")>=0){ alert("android"); } 

7、为表单动作属性的目标使用完全路径

jQuery Mobile库的一个不便之处似乎在于,很难找到张贴表单的目标页面;也就是说,除非你使用来自网站根目录的完全路径。

比如说,我发现这个表单标签从来找不到其目标:

<form action=" form-handler.php " method="get" > 

而像这样的完全路径可以起到应有的工作:

<form action="/current-directory/form-handler.php" method="get" > 

另外,还要确信来自表单处理程序的结果会生成一个完整、有效的jQuery Mobile页面,如第一个技巧所示。

8、创建弹出式对话框

jQuery Mobile库的一项便利特性就是内置的弹出内容或对话框特性。创建这项便利的特性简单得很。基本上只要添加需要链接的属性,如下所示:data-rel="dialog"。

注意两点。首先,目标页面必须是完整的jQuery Mobile页面,如第一个技巧所概述。其次,这只适用于外部页面;它必须是完整的单独页面才能正常工作。

<a href="#pop.html" data-rel="dialog">Pop up!</a> 

9、“Cancel”和“Save”组合按钮

这段代码满足了两个基本要求。第一个要求是,让两个按钮彼此相邻。幸好,jQuery Mobile库有一种内置的列结构,只要使用标签和合适的类,很容易利用这种结构,如下所示。第二个要求是,让两个按钮有不同的主题。这段代码直接来自说明文档,我把它留在手边,以便经常使用。

<fieldset> 
<div><button type="submit" data-theme="c">Cancel</button></div>
<div><button type="submit" data-theme="b">Submit</button></div>
</fieldset> 

10、自行创建列结构

我在竭力为多个设备设计最佳的单个页面结构时,发现自己经常结合运用上述的媒体查询技巧和“随意顺序的列”(columns in any order)方法。

幸好,Web开发人员很早以前就弄清楚了如何移动列。结合运用这个方法和媒体查询,我们就可以根据所处理的屏幕尺寸,很容易创建各种结构。

Position Is Everything网站展示了最容易使用的方法之一。

结论

jQuery Mobile库处理起来很方便。只要稍微下一点工夫,它就能获得出色的效果。考虑到它目前仍处于测试阶段,所以它起步不错。但愿你在不断钻研这个新的库时,这些快速技巧能让你不断前进。

转载于:https://www.cnblogs.com/mrdo/p/jQueryMobile_Snippets.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch 系列 | 数据加载和预处理教程

图片来源&#xff1a;Unsplash&#xff0c;作者&#xff1a;Damiano Baschiera2019 年第 66 篇文章&#xff0c;总第 90 篇文章本文大约 8000 字&#xff0c;建议收藏阅读原题 | DATA LOADING AND PROCESSING TUTORIAL作者 | Sasank Chilamkurthy译者 | kbsc13("算法猿的成…

PyTorch系列 | 如何加快你的模型训练速度呢?

图片来源&#xff1a;Pixabay&#xff0c;作者&#xff1a;talha khalil2019 年第 67 篇文章&#xff0c;总第 91 篇文章本文大约 6500 字&#xff0c;建议收藏阅读&#xff01;原题 | Speed Up your Algorithms Part 1 — PyTorch作者 | Puneet Grover译者 | kbsc13("算法…

Leetcode 系列 | 反转链表

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识最近会更新一个 leetcode 的刷题系列&#xff0c;每次更新一道题目&#xff0c;并且通过画图辅助介绍自己的解题思路&#xff0c;大家如果有更好的解题思路也欢迎在文末留言&#xff0c;或…

Android UI开发第二十九篇——Android中五种常用的menu(菜单)

Android Menu在手机的应用中起着导航的作用&#xff0c;作者总结了5种常用的Menu。 1、左右推出的Menu 前段时间比较流行&#xff0c;我最早是在海豚浏览器中看到的&#xff0c;当时耳目一新。最早使用左右推出菜单的&#xff0c;听说是Facebook&#xff0c;我不确定消息的真实…

深度学习的一些经验总结和建议| To do v.s Not To Do

关注&置顶“Charlotte数据挖掘”每日9:00&#xff0c;干货速递&#xff01;昨天看到几篇不同的文章写关于机器学习的to do & not to do&#xff0c;有些观点赞同&#xff0c;有些不赞同&#xff0c;是现在算法岗位这么热门&#xff0c;已经不像几年前一样&#xff0c;可…

PyTorch系列 | 快速入门迁移学习

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识图片来源&#xff1a;Pexels&#xff0c;作者&#xff1a;Arthur Ogleznev2019 年第 68 篇文章&#xff0c;总第 92 篇文章本文大约 6800 字&#xff0c;建议收藏阅读原题 | TRANSFER LEAR…

AI研发工程师成长指南

AI研发工程师成长指南本文为数据茶水间群友原创&#xff0c;经授权在本公众号发表。关于作者&#xff1a;Japson。某人工智能公司AI平台研发工程师&#xff0c;专注于AI工程化及场景落地。持续学习中&#xff0c;期望与大家多多交流技术以及职业规划。0x00 前言首先&#xff0c…

进程和线程(上)

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识2019 年第 70 篇文章&#xff0c;总第 94 篇文章本文大约 6000 字&#xff0c;阅读大约需要 15 分钟最近会开始继续 Python 的进阶系列文章&#xff0c;这是该系列的第一篇文章&#xff0c…

你有哪些deep learning(rnn、cnn)调参的经验?

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识来源&#xff1a;知乎问题深度学习中调参其实是一个比较重要的技巧&#xff0c;但很多时候都需要多尝试多积累经验&#xff0c;因此算法工程师也被调侃为调参工程师。这里分享来自知乎上的…

A+B for Matrices 及 C++ transform的用法

题目大意&#xff1a;给定两个矩阵&#xff0c;矩阵的最大大小是M*N&#xff08;小于等于10&#xff09;&#xff0c;矩阵元素的值的绝对值小于等于100&#xff0c;求矩阵相加后全0的行以及列数。 1 #include<iostream>2 using namespace std;3 #define N 104 5 int main…

进程和线程(下)

点击上方“算法猿的成长”&#xff0c;选择“加为星标”第一时间关注 AI 和 Python 知识2019 年第 71 篇文章&#xff0c;总第 95 篇文章本文大约 8000 字&#xff0c;建议收藏阅读上一篇文章介绍了进程和线程的基本概念&#xff0c;以及多进程如何实现&#xff0c;本文则介绍下…

8月总结抽奖

1首先是小小总结下 8 月发文的情况&#xff0c;总共推文时间是 21 天&#xff0c;原创文章有 9 篇&#xff0c;分别如下&#xff1a;Jupyter 进阶教程PyTorch 系列 | 数据加载和预处理教程PyTorch系列 | 如何加快你的模型训练速度呢&#xff1f;Leetcode 系列 | 反转链表PyTorc…