最近工作不怎么忙看啦先jquery ui和exitjs,由感而发写啦个基于jquery的模板隐形,请大家多多指教
代码:
(function($){
var re=/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g;
$.widget("ui.template", {
//模板中要替换的位置
options:{
//是否启用自定义格式化函数包
disableFormats: false,
//输出格式化定义
fm:this,
//是否自动编译
autoExecute: false,
compile: false,
//要编译的模板
html:'',
//要替换的模板数据
data:null
},
_create: function(){
var self=this,options=self.options;
self.returnElement=this.element;
if(!this.compiled){
self.compile();
}
self.tempElement=self.applyTemplate(options.data);
},
_init: function(){
var self=this;
self._execute=false; //修正时间2010-4-23
if(this.options.autoExecute){
this.execute();
}
},
destroy: function(){},
widget: function() {
return this.returnElement;
},
//设置和获取配置项
_setOption: function(key, value){
var self=this;
$.Widget.prototype._setOption.apply(self, arguments);
},
applyTemplate: function(values){
var self=this,
options=self.options,
userF=self.disableFormats !== true,
fm=options.fm;
if(options.compile){
return self.compiled(values);
}
function fn(m, name, format, args){
if(format&&userF){
if (format.substr(0, 5) == "this.") {
return self.call(format.substr(5),values[name],values);
}else if(format.substr(0, 1) == "."){
var temp=values[name][format.substr(1)];
return temp !==undefined ? temp : "";
}
else{
if (args) {
var re = /^\s*['"](.*)["']\s*$/;
args = args.split(',');
for(var i = 0, len = args.length; i < len; i++){
args[i] = args[i].replace(re, "$1");
}
args = [values[name]].concat(args);
}else{
args = [values[name]];
}
return fm[format].apply(fm, args);
}
}else{
return values[name] !== undefined ? values[name] : "";
}
}
return options.html.replace(re, fn);
},
compile: function(){
var self=this,
options=this.options,
useF = options.disableFormats !== true,
fm=options.fm,
body;
function fn(m, name, format, args){
if(format && useF){
args = args ? ',' + args : "";
if(format.substr(0, 1) != "."){
if(format.substr(0, 5) != "this."){
format = "fm." + format + '(';
}else{
format = 'this.call("'+ format.substr(5) + '", ';
args = ", values";
}
}
}else{
args= ''; format = "(values['" + name + "'] == undefined ? '' : ";
}
var tmp="";
if(format.substr(0, 1) == "."){
tmp="',values['"+name+"']['"+format.substr(1)+"'],'";
}else{
tmp="'," + format + "values['" + name + "']" + args + "),'";
}
return tmp;
}
body = ["this.compiled = function(values){ return ['"];
body.push(options.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(re, fn));
body.push("'].join('');};");
body = body.join('');
eval(body);
return self;
},
call : function(fnName, value, allValues){
return this.options[fnName](value, allValues);
},
execute: function(){
var self=this;
if(!self._execute){
self.returnElement.html(self.tempElement);
self._execute=true;
}
return self;
}
});
$.extend($.ui.template, {
version: "1.0"
});
})(jQuery);
示例:
js代码:
- (function($){
- var data={
- name:'ning cheng zeng',
- age:25,
- kids:{
- name:'aaaaaaaaaaaa',
- age:1
- }
- };
- var tpl="<p>name:{name}
</p><p>age:{age:f}
</p><p>kids:name:{kids:.name}
</p><p>name:{name:this.aa}
</p>";
- var format={
- f:function(a,b){
- return a+":"+(b-5)
- }
- }
- $('h1').template({
- html:tpl,
- data:data,
- fm:format,
- autoExecute:false,
- compile:true,
- aa:function(a){
- return a;
- }
- });
-
- })(jQuery);
html代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Templates Example</title>
<script type="text/javascript" src="../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../src/jquery.ui.core.js"></script>
<script type="text/javascript" src="../src/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../src/Template.js"></script>
<script type="text/javascript" src="../src/XTemplate.js"></script>
<script language="javascript" src="templates.js"></script>
</head>
<body>
<h1>Templates</h1>
</body>
</html>
最后执行结果为
<h1><p>name:ning cheng zeng
</p><p>age:age:20
</p><p>kids:name:aaaaaaaaaaaa
</p><p>name:name
</p></h1>
这是小弟根据extjs的模板该写的一个基础的模板 请大家给点意见谢谢;
如有需要等待小弟下次更新
分享到:
相关推荐
**jQuery MiniUI 开发UI模板** jQuery MiniUI 是一个基于 jQuery 的轻量级 Web UI 框架,专为开发企业级 Web 应用提供快速、简洁、强大的组件库。这个压缩包文件“jQuery MiniUI V2_0 Demo”包含了 MiniUI 的 2.0 ...
本文将深入探讨一个基于jQuery UI库构建的响应式后台管理模板,它能为开发者提供一个高效、易用且适应多设备的界面解决方案。 首先,jQuery UI是一个强大的JavaScript库,它提供了丰富的UI组件,如对话框、拖放功能...
jQuery UI 是一个基于 jQuery JavaScript 库的用户界面插件集合,它提供了丰富的交互式组件和可自定义的主题,适用于构建后台管理系统界面。jQuery UI 包含了多种功能强大的组件,如对话框(Dialog)、日期选择器...
jQuery Easy UI 是一个基于 jQuery 的前端开发框架,它提供了一系列的组件和样式,使得开发者能够快速构建出美观且功能丰富的 Web 应用程序。这个压缩包包含的 "jQuery Easy UI 学习模板" 是为初学者准备的实践资源...
7. 模板(Template):jQuery UI 的模板功能允许开发者创建和管理重复的数据结构,通过简单的标记语言来渲染动态数据。 8. 效果(Effects):jQuery UI 提供了一系列内置的动画效果,如淡入淡出、滑动、切换等,...
【标题】:“后台管理html模板(包含1个jqueryUI的).7z”指的是一个压缩包文件,其中包含用于构建后台管理界面的HTML模板,并且这些模板至少集成了一个jQuery UI库。 【描述】:“后台管理html模板(包含1个jqueryUI...
1. CSS主题:jQuery UI Theme基于Themeroller工具,允许开发者在线定制符合品牌风格的颜色、字体和布局,生成一组CSS文件,应用于整个jQuery UI组件。 2. 组件覆盖:包括按钮、对话框、滑块、日期选择器等在内的所有...
jQuery UI 是一个基于 jQuery JavaScript 库的强大用户界面库,它提供了丰富的交互组件和设计模式,为网页开发者提供了便捷的方式来创建美观、功能丰富的交互界面。jQuery UI 1.8.13 版本是这个库的一个历史版本,...
jQuery-UI 是一个强大的前端开发库,它基于 jQuery JavaScript 库,提供了一套完整的用户界面组件,包括可交互的控件、动画效果和可自定义的主题。这款“超级牛B的Jquery-UI后台管理模板”无疑是为开发者构建高效、...
**jQuery UI** 是一个基于 **jQuery** 库的开源用户界面库,提供了丰富的交互效果、可自定义的主题以及多种功能组件。它使得前端开发者能够快速、便捷地构建出美观且功能丰富的网页应用。jQuery UI 包含了多个关键...
**基于jQuery的CMS后台管理系统网站模板详解** 在Web开发领域,内容管理系统(CMS)是用于构建和维护网站的工具,而后台管理系统则是CMS的核心部分,它负责管理网站的内容、用户、权限等。本模板——“基于jQuery的...
jQuery UI 是一个强大的JavaScript库,它是基于jQuery核心库构建的,专为创建用户界面而设计。这个最新的jQuery UI包包含了所有必要的组件和资源,能够帮助开发者快速、高效地开发出功能丰富、用户体验良好的Web应用...
标题中的"springmvc+maven+junit+jqueryUI"是一个典型的Web开发技术组合,涉及四个主要组件:Spring MVC、Maven、JUnit和jQuery UI。现在,让我们深入探讨这些技术及其在实际开发中的应用。 1. Spring MVC(Spring ...
本话题主要涉及两个关键库——jQuery UI和myflow.js,以及如何结合它们来构建自定义的组织架构图和流程图。首先,让我们深入了解这两个库及其功能。 jQuery UI是一个流行的JavaScript库,它是jQuery项目的扩展,...
这款“逆天超级牛B的jQuery-UI后台管理模板”正是基于这样的理念,将功能强大的jQuery-UI组件与后台管理需求相结合,打造出了一个高效、易用的后台界面。 首先,我们来深入了解一下jQuery-UI的主要组件: 1. **...
jQuery UI 是一个基于 jQuery 库的扩展框架,它提供了一系列可交互、可定制的界面组件,如日期选择器、对话框、拖放功能、进度条等。这个"最新jquery-ui"压缩包包含了构建用户界面所需的基本元素,适用于前端开发者...
**jQuery EasyUI** 是一个基于 jQuery 的前端框架,它提供了丰富的用户界面组件,极大地简化了网页开发中的交互设计。这个整体文件包包含了jQuery EasyUI的所有核心组件,如树形控件、表单、表格等,同时也附带了...
jQuery UI 是一个基于 jQuery JavaScript 库的开源项目,它提供了一系列丰富的用户界面(UI)组件,旨在帮助开发者构建交互性强、视觉吸引力高的网页应用。jQuery UI 的控件采用扁平化设计,使得界面更加简洁、现代...
jQuery UI 是一个基于 jQuery JavaScript 库的用户界面插件集合,它提供了丰富的交互效果、可自定义的主题以及多种组件,使得开发者能够快速构建功能完善的网页应用。在这个"JQUERY-UI中文定制版"中,特别强调了对...
本资源包含两套基于HTML5和jQuery Mobile的模板,可以帮助开发者快速搭建移动应用的界面,提升开发效率。 HTML5是超文本标记语言的最新版本,它引入了许多新的元素和API,旨在使网页设计更加语义化,提高可访问性和...