Jquery Mobile开发以及Js对象动态绑定
动态创建对象并绑定属性:
var instantiate = function (Type, args) {
var Constructor = function () { };
Constructor.prototype = Type.prototype; var obj = new Constructor(); Type.apply(obj, args); return obj;
}; var AssetObj = function () { }; AssetObj.prototype.getAssetName = function (AssetName) {
return "AssetName:" + this[AssetName] + ",data:" + this[AssetName + "DataObjs"] + "Length:" + this[AssetName + "DataObjs"].length;
}; AssetObj.prototype.set = function (Asset, data) {
this[Asset] = Asset;
if (this[Asset + "DataObjs"] == null || this[Asset + "DataObjs"] == undefined) {
this[Asset + "DataObjs"] = new Array();
this[Asset + "DataObjs"].push(data);
} else {
this[Asset + "DataObjs"].push(data);
}
} //
var assetObjs = instantiate(AssetObj);
var regionObjs = instantiate(AssetObj); //assetObjs.set("ISCS", "ISCS_DATA1");
//assetObjs.set("ISCS", "ISCS_DATA2");
//assetObjs.set("HHO", "HHO_DATA");
//alert("person2:" + assetObjs.getAssetName('ISCS'));
//alert("person3:" + assetObjs.getAssetName('HHO')); $.each(items, function (k, v) {
assetObjs.set(v.Asset, v);
regionObjs.set(v.Region, v);
});
Jquery属性选择器:
源码示例:
//获取页面data-role="page"和data-role="dialog"的数目
//#7470
var $pages = $(":jqmData(role='page'),:jqmData(role='dialog')")
那我来大家来看一下到底是咋样实现的呢?
源码展示:
var oldFind = $.find,
jqmDataRE = /:jqmData\(([^)]*)\)/g; $.find = function(selector,context,ret,extra){
//注意这边会按照jquery mobile的特性写法,进行一层过滤
selector = selector.replace(jqmDataRE,"[data-" + ($.mobile.ns || "") + "$1]");
//比如selector为":jqmData(role='page')",替换后的"[data-role='page']"
return oldFind.call(this,selector,context,ret,extra);
};
说明;
1、其实在jquery mobile体系中,内部处理了一下$.find,对:jqmData这种选择器进行处理
Jquery Mobile开发以及Js对象动态绑定的更多相关文章
- (转)经典收藏 50个jQuery Mobile开发技巧集萃
(原)http://www.cnblogs.com/chu888chu888/archive/2011/11/10/2244181.html 经典收藏 50个jQuery Mobile开发技巧集萃 ...
- 18个jQuery Mobile开发贴士和教程
jQuery Mobile 是 jQuery 在手机上和平板设备上的版本.jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架.支持 ...
- 经典收藏 50个jQuery Mobile开发技巧集萃
http://www.cnblogs.com/chu888chu888/archive/2011/11/10/2244181.html 1.Backbone移动实例 这是在Safari中运行的一款Ba ...
- jquery mobile开发笔记之Ajax提交数据(转)
http://my.oschina.net/xiahuawuyu/blog/81763 这两天学习了下,jquery mobile(以下简称jqm)的开发相关的内容.可能之前有过web的开发基础,相对 ...
- 利用JQuery Mobile开发web app
什么是web app web app 是基于web的应用程序,是针对移动设备优化后的web站点,它具有 开发成本低——采用web开发技术,不需要考虑跨平台以及底层适配问题: 升级简单——不需要通知用户 ...
- jQuery Mobile开发的新闻阅读器,适应iphone和android手机
程序猿都非常赖.你懂的! 我们常常上新浪,腾讯.雅虎等各大站点上面看新闻.他们也都各自推出了自家的手机新闻阅读器.今天我自己使用jQuery Mobile 来实现这一功能.图片大小上传限制了大小250 ...
- jQuery Mobile 开发中常见的问题
目录 页面缩放显示问题 页面跳转后样式丢失js失效 跳转时重复调用pageinit方法的解决办法 如何调用loading效果 1页面缩放显示问题 问题描述: 页面似乎被缩小了,屏幕太宽了. 解决办 ...
- Jquery学习笔记(1)--JQuery原理,与JS对象互换,核心函数
js对象转jQuery对象,$('num'), jQuery对象转js对象,$('num')[0],或$('num').get(0). 1.点击换行,each(),html(),attr(),每个h1 ...
- jquery mobile开发中页面跳转后js不执行的问题
为了实现在移动设备上的无缝客户体验,jQueryMobile默认采用AJAX的方式载入一个目的链接页面.因此,当在浏览器中点击一个链接打一个新的页面时,jQueryMobile接收这个链接,通过AJA ...
随机推荐
- python word
代码: #coding=utf-8 __author__ = 'zhm' from win32com import client as wc import os import time import ...
- '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error
'0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error 异常现象 ### Cause: java.sql.SQ ...
- Django学习笔记(现学现写,实时更新)
说明:我是先上手做一些简单的例子,然后在尝试的过程中理解Django的原理,笔记也是按这个思路来的. 一.Django结构与基本文件介绍 1. django-admin.py 工程管理工具,主要用于创 ...
- [Android]Volley源码分析(五)
前面几篇通过源码分析了Volley是怎样进行请求调度及请求是如何被实际执行的,这篇最后来看下请求结果是如何交付给请求者的(一般是Android的UI主线程). 类图:
- ajax 的返回值类型
ajax的dataType类型有三种:text,json,xml. text类型: 主页面: $.ajax({ url:"chuli.php", dataType:&quo ...
- 如何同时打开两个excel
1. 打开一个excel1 2. 不要双击想要打开的excel2.右键excel应用的图标,选择excel2007. 3. 将excel2拖动到2所打开的新建excel中. 4. over.
- c++ 虚函数
class A { public: virtual void f();//希望派生类重写 void fun();//绝大多数情况下不要重新定义基类的非虚函数,那样会打破公有继承Is-A的关系,而且行为 ...
- HTML5的属性
一.全局属性 1.class属性 class属性对元素指定CSS类选择器 <!doctype html> <html> <meta charset="utf-8 ...
- redis和memcached的区别(总结)
1.Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等: 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供lis ...
- Bash 中为 _ 变量赋空值的三个场景
$_ 有好几个功能,我们最常用的是用它来获取“刚刚执行过的命令的最后一个参数”这个功能,比如下面这样: $ ls ~/Downloads/very/long/dir/ # ls 到某个目录看看有没有 ...