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 相关文章推荐
来自qq的javascript面试题
Jul 24 Javascript
Jquery实现三层遍历删除功能代码
Apr 23 Javascript
asp.net中oracle 存储过程(图文)
Aug 12 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
jQuery动画效果相关方法实例分析
Dec 31 Javascript
JS锚点的设置与使用方法
Sep 05 Javascript
关于List.ToArray()方法的效率测试
Sep 30 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 Javascript
ES6 Promise对象的应用实例分析
Jun 27 Javascript
node获取客户端ip功能简单示例
Aug 24 Javascript
JS实现简单九宫格抽奖
Jun 28 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
php 图像函数大举例(非原创)
2009/06/20 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
php图片上传类 附调用方法
2016/05/15 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
Python深入学习之对象的属性
2014/08/31 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
python 实现return返回多个值
2019/11/19 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
人力资源专业推荐信
2013/11/29 职场文书
大专生自我评价
2014/01/28 职场文书
社区禁毒工作方案
2014/06/02 职场文书
股权转让协议书
2014/12/07 职场文书
服务明星事迹材料
2014/12/29 职场文书
检讨书模板大全
2015/05/07 职场文书
实现GO语言对数组切片去重
2022/04/20 Golang