最近一直在研究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. nginx中针对目录进行IP限制

    一个不错的nginx中针对目录进行IP限制 ,这里我以phpmyadmin目录只能让内网IP访问,而外网不能访问的配置方法,有需要的同学可参考. nginx phpmyadmin 针对内网ip用户开放 ...

  2. LINQ to SQL使用教程

    前些时间用LINQ to SQL做了一些项目,现在打算总结一下,帮助新手快速入门,并写一些别的教程没提到的东西. 一.LINQ to SQL和别的LINQ to XXX有什么关系?二.延迟执行(Def ...

  3. strtok和strtok_r

    1.strtok()函数的用法 函数原型:char *strtok(char *s, const char *delim); Function:分解字符串为一组字符串.s为要分解的字符串,delim为 ...

  4. [转] 編程風格要素-The Elements of Programming Style 中文英文中英對照

    转自: http://www.loliman3000.com/tech/2fe33ce32906f0302412881.php 下面的程序風格規則提煉自Brian Kernighan和P. J. Pl ...

  5. linux中hosts文件的修改

    转载自http://hi.baidu.com/dillisbest/item/5e0b612d011b4cd40e37f9a6 1. 关于/etc/host,主机名和IP配置文件 Hosts - Th ...

  6. java多线程之Lock线程同步

    1.线程同步: package cn.itcast.heima2; import java.util.concurrent.locks.Lock; import java.util.concurren ...

  7. navigationController 之间的切换

    项目要实现从一个Navigation 下push出的第N层controller后 立即切换到另一个 Navigation下 例如:在微信的通讯录Nav中选择一个好友,进入好友的详细资料,点击发消息按钮 ...

  8. linux进程控制命令

    & 加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &. ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行. jobs 查看当前有多少在 ...

  9. Node-APN 开源推送服务

    Node-APN是一个开放的结合了苹果推送通知的Node.js模块,该源码模块使用简单,反馈服务支持.错误处理,在发送出错时自动重发.遵从苹果的最佳实践. Node-APN(github)

  10. Fast-paced Multiplayer

    http://www.gabrielgambetta.com/fpm1.html —————————————————————————————————————————————————————— Fast ...