最近一直在研究jQuery Mobile框架,这是jQuery的官方移动版UI框架,专门用来开发手机与平板电脑方面的应用。结果越来越觉得它和我的QUI框架的开发思路非常相似,很多地方都有异曲同工之妙。jQuery Mobile框架倡导wire less ,do more,QUI框架中我花了很多心思让开发更加便捷,发现和jQuery Mobile框架用的手段非常相似,看来真的是英雄所见略同呢。

下面我来举几个例子:

1、默认对传统标签进行增强式渲染,实现组件的美化目的

在jQuery Mobile中,页面初始化时引擎会自动将传统标签渲染成适合触摸的外观。例如按钮标签:

<input type="button" value="Button" />

渲染后的效果如下:

文本框标签:

<input type="text" name="name" id="name" value="" />

渲染后的效果如下:

在QUI中,页面初始化时引擎会自动将传统标签渲染具有美化的外观样式,效果如下:

如果不想让引擎渲染传统标签,在jQuery Mobile中,为标签添加data-role="none";在QUI中,为标签添加keepDefaultStyle="true"

2、对其他html标签添加特殊标记来创建扩展的组件

在jQuery Mobile中,为标签添加data-role=xxx,这样在页面初始化时会将这些标签渲染成相应的组件。例如为链接添加data-role="button",如下:

<a href="index.html" data-role="button">Link button</a>

则会渲染为一个按钮:

为div添加data-role="header",如下:

<div data-role="header">

<h1>Page Title</h1>

</div>

则会渲染为一个标题栏:

在QUI中,为标签添加class=xxx来实现扩展组件的渲染。例如为div添加class="selectTree",如下:

<div class="selectTree" url="xxx"></div>

其中,url用于返回JSON数据,这样就创建了一个属性下拉框:

为input标签添加class="keypad",如下:

<input class="keypad" type="text"/>

这样就创建了一个数字选择器:

3、为标签添加自定义属性来扩展组件功能

jQuery Mobile和QUI框架都可以为标签添加自定义的属性。例如在jQuery Mobile中,为input标签添加placeholder属性实现水印:

<input type="text" name="username" id="username" value="" placeholder="Username"/>

效果如下:

为a标签添加data-inline="true"实现按钮尺寸自定义文字,添加data-mini="true"让按钮的样式为小型按钮:

<a href="index.html" data-role="button" data-inline="true" data-mini="true">Cancel</a>

效果如下:

在QUI框架中,为input标签添加watermark属性来实现水印:

<input type="text" watermark="输入字母或数字"/>

效果如下:

为select标签添加colNum="3"可实现将选项分为3列显示,效果如下:

4、拥有图标库,可以与其他组件结合使用

在jQuery Mobile中,通过设置data-icon可以为很多组件添加图标,例如为按钮添加图标:

<a href="index.html" data-role="button" data-icon="delete" data-inline="true">Cancel</a>

效果如下:

在QUI中,也同样拥有图标库,可以为很多组件添加图标。例如为按钮添加图标代码:

<button type="button"><span class="icon_save">保存</span></button>

<button type="button"><span class="icon_delete">删除</span></button>

<button type="button"><span class="icon_find">查询</span></button>

效果如下:

5、组件支持动态创建

jQuery Mobile和QUI中的组件除了可以使用标签创建外,还支持动态创建dom节点的方式创建组件。

jQuery Mobile中动态创建组件的方式如下:

动态创建dom节点,并添加到页面中,最后调用create方法进行渲染。

代码形式如下:

$( 组件dom标签 ).appendTo( ".ui-page" ).trigger( "create" );

QUI中动态创建组件的方式如下:

动态创建dom节点,并添加到页面中,最后调用render方法进行渲染。

代码形式如下:

$( 组件dom标签 ).appendTo( "body" ).render();

6、组件支持动态修改

jQuery Mobile和QUI中的组件要动态修改时,通过动态调整组件的属性,然后调用刷新方法进行刷新。例如

jQuery Mobile中动态选中多选按钮代码如下:

$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh");

jQuery Mobile中动态选中下拉框某项的代码如下:

var myselect = $("#selectfoo");

myselect[0].selectedIndex = 3;

myselect.selectmenu("refresh");

QUI中动态选中下拉框某项的代码如下:

$("#sel-1")[0].selectedIndex = 1;

$("#sel-1").render();

如果要禁用下拉框,代码如下:

$("#sel-1").attr("disabled",true);

$("#sel-1").render();

QUI中渲染与刷新是同一个方法render(),会自动判断进行处理。

关于QUI框架,大家可以看我之前发的资讯帖子来了解:

http://www.iteye.com/news/26579-ui-web-qui-jquery

jQuery Mobile与QUI框架的异曲同工之处的更多相关文章

  1. 小强的HTML5移动开发之路(47)——jquery mobile基本的页面框架

    一.单容器页面结构 <!DOCTYPE html> <html> <head> <title>Jquery mobile 基本页面框架</titl ...

  2. 使用jQuery Mobile和Phone Gap开发Android应用程序

    经过了一段时间的学习,初步了解了该如何使用jQuery Mobile和 Phone Gap来开发一个Android应用程序,也想把这些东西介绍给大家. 1. 软件准备 要进行android app的开 ...

  3. 使用jQuery Mobile和Phone Gap开发Android应用程序(转)

    经过了一段时间的学习,初步了解了该如何使用jQuery Mobile和 Phone Gap来开发一个Android应用程序,也想把这些东西介绍给大家. 1. 软件准备 要进行android app的开 ...

  4. Sencha Touch vs jQuery Mobile

    Sencha Touch:重量级框架,类似于Flex SDK;组件封装较多;在各平台交互表现统一(内部封装);入门门槛较高 jQuery Mobile:轻量级框架,实质是jQuery插件;组件较少;交 ...

  5. jQuery Mobile 是创建移动 web 应用程序的框架。

    jQuery Mobile jQuery Mobile 是创建移动 web 应用程序的框架. jQuery Mobile 适用于所有流行的智能手机和平板电脑. jQuery Mobile 使用 HTM ...

  6. 移动Web框架:jQuery Mobile VS Sencha Touch

    最近常被问到是用 jQuery Mobile还是Sencha Touch,本人也比较关注这两个框架,试图从以下两方面发表点儿见解: 身家背景,都系出名门 1.jQuery Mobile 建立在jQue ...

  7. jQuery Mobile 移动 web 应用程序框架

    在这里我们主要讲一下如何引用jQuery Mobile(引用了jQuery Mobile,你就能引用jQuery Mobile里已经封装好的代码,让开发更加快捷简单) 从 CDN 引用 jQuery ...

  8. jQuery Mobile入门

    转:http://www.cnblogs.com/linjiqin/archive/2011/07/17/2108896.html 简介:jQuery Mobile框架可以轻松的帮助我们实现非常好看的 ...

  9. jquery.mobile手机网页简要

    先上最终效果: 最近做了一个用手机浏览器访问的web应用,采用较流行的HTML5,为了提高开发效率节省时间决定采用现有开源框架,免去了自己做设计与兼容性. 一些比较优秀的框架:10大优秀的移动Web应 ...

随机推荐

  1. 被投资人“送”入看守所 z

    http://news.cnblogs.com/n/506969/ 拜读了[[畅言]读<被投资人“送”入看守所>一文有感]一文有感,很想跟作者探讨几句.虽然他的看法很有理性,但站在一个刑案 ...

  2. 因為 Hypervisor 未執行,所以無法啟動虛擬機器

    bcdedit /set hypervisorlaunchtype auto https://technet.microsoft.com/zh-tw/magazine/2009.02.hyperv.a ...

  3. Delphi 关闭MDI子窗口

    需要在子窗口的onClose事件中吧Action = caFree; 就可以了. procedure Tfrm_aa.FormClose(Sender: TObject; var Action: TC ...

  4. VMware 命令行下安装以及导入Ubuntu系统

    前提: 鉴于个人PC性能太弱,考虑是否可以将在PC上搭建好的环境移植到高性能服务器上.想到后就干呗. 下载完对应操作系统的安装包后按如下步骤操作: 安装包名称:VMware-Workstation-F ...

  5. git 换行符问题

    git 换行符问题 在windows环境中 对于autocrlf = false 不会激发 关于换行符的处理 对于autocrlf = true 会在提交是将LF替换成CRLF 切出时时CRLF 对于 ...

  6. IE 兼容性写法

    1. 条件注释语句 <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE ...

  7. Mellanox vma

    1,Mellanox offical vma Installation guide personal reading summarize VMA是一个消息加速器messaging accelerato ...

  8. 個人最近做的最多的重複工作就是excel导出

    //导出事件,这个是有合并动态列的 double num1 = 0, num2 = 0, num3 = 0; protected void btnExcel_Click(object sender,  ...

  9. 用jstack工具分析java程序

    最近做项目时遇到了一个问题,我的多个采集线程中,有一个线程经常挂起,线程并没有死掉,但是一直采集不到数据,为了解决这个问题,用到了jstack. 首先查找到java进程的pid,ps -ef|grep ...

  10. Win7系统下利用U盘安装Ubuntu14.04麒麟版

    转自http://www.360doc.cn/article/14743053_335473181.html 重要提示:在采用u盘安装ubuntu分区时,所有磁盘一定要全部设置成逻辑分区,包括根目录/ ...