最近一直在研究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. ADO.NET+Access: 1,标准表达式中数据类型不匹配

    ylbtech-Error-ADO.NET+Access: 1,标准表达式中数据类型不匹配. 1.A,错误代码返回顶部  1,标准表达式中数据类型不匹配. 1.B,出错原因分析返回顶部  未解决 1. ...

  2. 15stl模板

    1.stack #include<iostream> #include<stdio.h> #include<stack> using namespace std; ...

  3. Leetcode: Length of Last Word in python

    Length of Last Word Total Accepted: 47690 Total Submissions: 168587     Given a string s consists of ...

  4. ps做gif 登陆下拉菜单效果

    作者这里仅介绍登录动画的制作思路和简单过程.一些细节的制作,如登录框,每一帧的图像等都需要自己根据参考图慢慢完成.最终效果 1.新建大小适当的文件,背景填充暗蓝色.首先设计一个底座,主要用图层样式来完 ...

  5. pthread_cond_timedwait时间设置

    最近工作中需要在ACodec中起一个pthread,并每间隔100ms统计一次buffer的状态,在程序中使用pthread_cond_timedwait来设置时间间隔,但在使用中发现当超时时间设置成 ...

  6. Compiling Xen-4.4 From Source And Installing It On Ubuntu Server (Amd-64)

    First of all, you should install a clean Ubuntu Server (Amd-64) on your server. (Version 14.04 is st ...

  7. Java基础 —— 概述

    Java语言: JDK(Java Development Kit)开发工具包,提供Java的开发环境和运行环境 --> 适合于开发 JRE(Java Runtime Environment)Ja ...

  8. IDEA使用docker进行调试

    背景 手头有个任务,需要用java通过jni调用一个开源算法库gmssl的功能,但是gmssl只提供了源码,需要编译后才能使用.按照通常的做法,我们会部署好centos的虚拟机和开发环境,安装好gms ...

  9. python 字符串,数组,元祖操作基础巩固。

    由于上个星期有点忙,没时间来抽空记一些有用的东西.丢了比较久的python很多忘记的小操作我也会重新捡起来 以前最容易搞混的 str.split() #操作会生成一个数组对象.example:'lap ...

  10. oracle不用tsname文件的时候着怎么办

    oracle\product\10.2.0\client_2\odp.net\PublisherPolicy\Policy.9.2.Oracle.DataAccess.config 找到newVers ...