jQuery LigerUI 使用教程入门篇


Posted in Javascript onJanuary 18, 2012

获取最新代码
可以到http://ligerui.googlecode.com下载最新代码。

简介
jQuery LigerUI 是基于jQuery的一系列UI控件组合,简单而又强大,致力于快速打造Web前端界面解决方案。 因为是前端控件,跟服务器无关,可以适合.net,jsp,php等等web服务器环境。目前全部插件的打包压缩JS只有100K左右,很轻巧。使用插件式的开发模式,以“简单”为原则的设计,每个插件尽量独立,并可依赖拓展。

ligerUI是什么
jQuery LigerUI控件丰富,包括基础、导航、布局、表单、表格、树形、窗口等

基础:Resizable、Drag、Tip

导航:Menu、MenuBar、ToolBar

布局:Layout、Tab

表单:Form、TextBox、Button、CheckBox、ComboBox、DateEditor、Radio、Spinner

表格:Grid

树形:Tree

窗口:Dialog、MessageBox、Window

回到顶部
如何使用
jQuery LigerUI是基于jQuery而设计的一系列插件集合。基本上每个插件都是相对独立的。但是彼此之间又紧密地关联着,合理地对插件进行组装,实现出现各种复杂的功能。 使用UI可以帮助你快速地创建友好的用户界面。

第一个例子

<head> 
<title></title> 
<link href="http://www.cnblogs.com/lib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" /> 
<script src="http://www.cnblogs.com/lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script> 
<script src="http://www.cnblogs.com/lib/ligerUI/js/core/base.js" type="text/javascript"></script> 
<script src="http://www.cnblogs.com/lib/ligerUI/js/plugins/ligerTextBox.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function () 
{ 
//我们将一个html文本框对象转换成ligerui文本框对象,并返回ligerui对象 
var g = $("#txt1").ligerTextBox( 
{ 
//如果没有输入时,会提示不能为空 
nullText: '不能为空' 
}); /* 
如何获取属性 
*/ 
//方式一 
alert('方式一:' + g.get('disabled')); 
//方式二 
alert('方式二:' + $("#txt1").ligerTextBox('option', 'disabled')); 
/* 
如何设置属性 
*/ 
//方式一 
g.set('disabled', true); 
//方式二 
$("#txt1").ligerTextBox('option', 'disabled', false); 

/* 
如何调用方法 
*/ 
//方式一 
g.setDisabled(); 
//方式二 
$("#txt1").ligerTextBox('setEnabled'); 
/* 
如何设置事件 
*/ 
//这里给文本框绑定一个改变值的事件 
//也可以设置onChangeValue参数 
g.bind('changeValue', function (value) 
{ 
alert(value); 
}); 
}); 
</script> 
</head> 
<body style="padding:10px"> 
<input type="text" id="txt1" value="" style="width:200px"/> 
</body>

更多的参数和方法的设置可以查看API:http://www.ligerui.com/api/

上面是TextBox的使用范例,其他的插件使用方式类似。

如何使用ligerUI对象
我们应用完插件以后,是返回一个ligerui对象的,可以把这个对象保存在一个全局的变量里面。在后续的操作中可能会用到。如果因为变量作用域的限制等,没有及时保存起来。我们可以用其他方式获取。见如下:

保存到一个全局的javascript变量:

var g; 
$(function () 
{ 
g = $("#txt1").ligerTextBox(); 
);

使用$.fn.ligerGetTextBoxManager
var g = $("#txt1").ligerGetTextBoxManager ();

使用$.ligerui.get方法
var g = $.ligerui.get('txt1');

第三个方式的是使用ligerui对象的id直接获取的,在传入参数没有指定id的情况下,对象的id将会使用html元素的id,如果html元素没有id,将会自动生成一个。所以在这里我们可以用html文本框的id来获取。
如果没有指定html元素的id,可以用第一种方式或者第二种方式。
其实第二种方式可以用第一种方式来替代,实则上ligerText是可以重复调用的,不同的是第二次以后调用都是直接放回ligerui对象。当我们不确定html元素是否已经应用了插件的情况下可以使用第二种方式。
其他插件的命名跟TextBox类同
事件处理
事件处理有两种方式。一种是以参数的形式传入,一种是调用ligerui对象的bind方法。
//方式一 
var g = $("#txt1").ligerTextBox( 
{ 
onChangeValue : function(value){alert(value);} 
}); //方式二 
g.bind('changeValue', function (value) 
{ 
alert(value); 
});

使用bind方法是没有带”on”的。
事件监听是可以多次绑定的。
对于某些事件,如果函数的返回值是false,那么后面还没有触发的函数将不会再执行
第二种方式(bind),是V1.1.3使用core机制以后引入的。
方法调用
使用ligerui的接口很方便。只需要调用ligerui对象的方法即可。
//这里设置文本框不能编辑 
g.setDisabled(); 
//这里设置文本框可以编辑 
g.setEnabled();

也可以使用这种方式
$(“#grid”).ligerGrid(‘setEnabled');

至于这个对象有哪些方法,可以查看API
对象的方法是可以扩展的,后面会有一篇ligerui扩展的章节来介绍
第二种方式是在V1.1.4加入的
获取参数值
每一个ligerui对象都会有get方法。可以获取参数值
var url = g.get(‘url');

或者是:
var url = $(“#grid”).ligerGrid(‘option','url');

动态设置参数
每一个ligerui对象都会有set方法。用于动态得设置参数。比如改变Grid的url,那么可以这样写:
g.set(‘url',url);

或者是:
g.set({url:url});

也可以用插件的方式:
$(“#grid”).ligerGrid(‘option','url',url);

第二种方式是允许同时传入多个参数的。
Set方法是所有插件的统一设置属性的接口
Set方法是V1.1.3使用core机制以后引入的。
插件传参的方式是V1.1.4引入的
回到顶部
如何扩展
Ligerui的默认参数、方法都是可以扩展的,这里我们定义了两个入口: $.ligerDefaults和$.ligerMethods。

比如要改变或者扩展Grid的默认参数,可以改变$.ligerDefaults.Grid

默认参数扩展
只需要扩展对象:$.ligerDefaults.{Plugin}

比如要改变表格默认的头部标题:

if($.ligerDefaults.Grid) 
{ 
$.ligerDefaults.Grid.title = "我的表格"; 
}

本地化支持扩展
只需要扩展对象:$.ligerDefaults.{Plugin}String

比如把表格“加载时”翻译成英文:

if($.ligerDefaults.GridString) 
{ 
$.ligerDefaults.GridString.loadingMessage = "loading..."; 
}

方法扩展
只需要扩展对象:$. ligerMethos.{Plugin}

这里给Grid ligerui对象增加一个alert方法:

$.extend($.ligerMethods.Grid, 
{ 
alert : function () 
{ 
//要注意到一点,这里的this就是ligerui对象 
var rowdata = this.getSelectedRow(); 
if (!rowdata) 
alert('空'); 
else 
alert(rowdata.CustomerID); 
} 
} 
); function show() 
{ 
//后面就可以这样使用 
Var g = $(“#maingrid”).ligerGrid(); 
g.alert(); 
}
Javascript 相关文章推荐
日期函数扩展类Ver0.1.1
Sep 07 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
js对数字的格式化使用说明
Jan 12 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
jquery获得当前html页面源码的方法
Jul 14 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
微信小程序 wx:key详细介绍
Oct 28 Javascript
JS判断数组那点事
Oct 10 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
关于Webpack dev server热加载失败的解决方法
Feb 22 Javascript
vue.js响应式原理解析与实现
Jun 22 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
c#和Javascript操作同一json对象的实现代码
Jan 17 #Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
Jan 16 #Javascript
Prototype源码浅析 Enumerable部分之each方法
Jan 16 #Javascript
javascript椭圆旋转相册实现代码
Jan 16 #Javascript
Prototype源码浅析 Number部分
Jan 16 #Javascript
Prototype源码浅析 String部分(四)之补充
Jan 16 #Javascript
Prototype源码浅析 String部分(二)
Jan 16 #Javascript
You might like
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
php 文件上传类代码
2011/08/06 PHP
php对数组排序的简单实例
2013/12/25 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
取选中的radio的值
2010/01/11 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
Python作用域用法实例详解
2016/03/15 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
分公司总经理岗位职责
2014/08/03 职场文书
六年级小学生评语
2014/12/26 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
老乡聚会通知
2015/04/23 职场文书
新闻发布会新闻稿
2015/07/17 职场文书