JQuery 插件FlexiGrid 之完全配置与使用
鄙人就在此献丑一下. 来全面的介绍一下JQuery FlexiGrid插件的配置和实用.
本人很菜. 各位大拿看了这么菜的文章 就不要拍砖了.. 一笑而过.好吗?谢谢合作.
首先.去下载FlexGrid http://www.flexigrid.info/
下载完成后.解压开有__MACOSX和flexigrid两个文件夹
主要使用flexigrid里面的文件
flexgrid文件夹下文件如下
..
准备工作完成后
真正工作开始了
在MyEclipse下新建Web project..
把flexigrid包下所有的文件拷贝到WebRoot/下
新建*.jsp页面
body体中
加入
- <table id="flex1" style="display:none"></table>
<table id="flex1" style="display:none"></table>
做完flexigrid控件的显示容器. 没有则不会显示控件
页面引入控件代码
- <table id="flex1" style="display:none"></table>
- <input id="hidden" type="hidden" name="hidden" value="null" />
- <script>
- $("#flex1").flexigrid
- (
- {
- url: '../ReleaseInfoServlet?hidden=manage',
- dataType: 'json',
- colModel : [
- {display: '信息编号', name : 'RINO', width : 50, sortable : true, align: 'center',hide: false},
- {display: '信息标题', name : 'RITITLE', width : 250, sortable : true, align: 'center'},
- {display: '信息类别', name : 'IC.ICNAME', width : 100, sortable : true, align: 'center'},
- {display: '信息热点', name : 'RIHOTPOINT', width : 60, sortable : true, align: 'center'},
- <!--{display: '信息内容', name : 'RICONTENT', width : 100, sortable : true, align: 'center'},-->
- {display: '发布日期', name : 'RIDATE', width : 120, sortable : true, align: 'center'},
- {display: '发布作者', name : 'RIAUTHOR', width : 80, sortable : true, align: 'center'}
- ],
- buttons : [
- {name: '添加', bclass: 'add', onpress : button},
- {name: '删除', bclass: 'delete', onpress : button},
- {name: '修改', bclass: 'modify', onpress : button},
- {separator: true}
- ],
- searchitems : [
- {display: '信息编号', name : 'RINO', isdefault: true},
- {display: '信息标题', name : 'RITITLE'},
- {display: '信息类别', name : 'IC.ICNAME'},
- {display: '发布作者', name : 'RIAUTHOR'}
- ],
- sortname: "RINO",
- sortorder: "desc",
- usepager: true,
- title: '信息发布管理',
- useRp: true,
- rp: 20,
- showTableToggleBtn: true,
- width: 780,
- height: 300
- }
- );
- function button(com,grid)
- {
- if (com=='删除')
- {
- ${"hidden"}.value="delete";
- if($('.trSelected',grid).length==0){
- alert("请选择要删除的数据");
- }else{
- if(confirm('是否删除这 ' + $('.trSelected',grid).length + ' 条记录吗?'))
- {
- var id ="";
- for(var i=0;i<$('.trSelected',grid).length;i++){
- if(i==$('.trSelected',grid).length-1){
- id += "id="+$('.trSelected',grid).find("td:first").eq(i).text();
- } else {
- id += "id="+$('.trSelected',grid).find("td:first").eq(i).text()+"&";
- }
- }
- window.location.href="../ReleaseInfoServlet?hidden="+${"hidden"}.value+"&"+id;
- }
- }
- }
- else if (com=='添加')
- {
- ${"hidden"}.value="add";
- window.location.href="infoAdd.jsp?hidden="+${"hidden"}.value;
- }
- else if (com=='修改')
- {
- ${"hidden"}.value="modify";
- if($(".trSelected").length==1){
- window.location.href="infoAdd.jsp?hidden="+${"hidden"}.value+"&id="+$('.trSelected',grid).find("td").eq(0).text();
- }else if($(".trSelected").length>1){
- alert("请选择一个修改,不能同时修改多个");
- }else if($(".trSelected").length==0){
- alert("请选择一个您要修改的新闻信息")
- }
- }
- }
<table id="flex1" style="display:none"></table>
<input id="hidden" type="hidden" name="hidden" value="null" />
<script>
$("#flex1").flexigrid
(
{
url: '../ReleaseInfoServlet?hidden=manage',
dataType: 'json',
colModel : [
{display: '信息编号', name : 'RINO', width : 50, sortable : true, align: 'center',hide: false},
{display: '信息标题', name : 'RITITLE', width : 250, sortable : true, align: 'center'},
{display: '信息类别', name : 'IC.ICNAME', width : 100, sortable : true, align: 'center'},
{display: '信息热点', name : 'RIHOTPOINT', width : 60, sortable : true, align: 'center'},
<!--{display: '信息内容', name : 'RICONTENT', width : 100, sortable : true, align: 'center'},-->
{display: '发布日期', name : 'RIDATE', width : 120, sortable : true, align: 'center'},
{display: '发布作者', name : 'RIAUTHOR', width : 80, sortable : true, align: 'center'}
],
buttons : [
{name: '添加', bclass: 'add', onpress : button},
{name: '删除', bclass: 'delete', onpress : button},
{name: '修改', bclass: 'modify', onpress : button},
{separator: true}
],
searchitems : [
{display: '信息编号', name : 'RINO', isdefault: true},
{display: '信息标题', name : 'RITITLE'},
{display: '信息类别', name : 'IC.ICNAME'},
{display: '发布作者', name : 'RIAUTHOR'}
],
sortname: "RINO",
sortorder: "desc",
usepager: true,
title: '信息发布管理',
useRp: true,
rp: 20,
showTableToggleBtn: true,
width: 780,
height: 300
}
); function button(com,grid)
{
if (com=='删除')
{
${"hidden"}.value="delete";
if($('.trSelected',grid).length==0){
alert("请选择要删除的数据");
}else{
if(confirm('是否删除这 ' + $('.trSelected',grid).length + ' 条记录吗?'))
{
var id ="";
for(var i=0;i<$('.trSelected',grid).length;i++){
if(i==$('.trSelected',grid).length-1){
id += "id="+$('.trSelected',grid).find("td:first").eq(i).text();
} else {
id += "id="+$('.trSelected',grid).find("td:first").eq(i).text()+"&";
}
}
window.location.href="../ReleaseInfoServlet?hidden="+${"hidden"}.value+"&"+id;
}
}
}
else if (com=='添加')
{
${"hidden"}.value="add";
window.location.href="infoAdd.jsp?hidden="+${"hidden"}.value;
}
else if (com=='修改')
{
${"hidden"}.value="modify";
if($(".trSelected").length==1){
window.location.href="infoAdd.jsp?hidden="+${"hidden"}.value+"&id="+$('.trSelected',grid).find("td").eq(0).text();
}else if($(".trSelected").length>1){
alert("请选择一个修改,不能同时修改多个");
}else if($(".trSelected").length==0){
alert("请选择一个您要修改的新闻信息")
}
}
}
flexgrid参数介绍:
- height: 200, //flexigrid插件的高度,单位为px
- width: ‘auto’, //宽度值,auto表示根据每列的宽度自动计算
- striped: true, //是否显示斑纹效果,默认是奇偶交互的形式
- novstripe: false,
- minwidth: 30, //列的最小宽度
- minheight: 80, //列的最小高度
- resizable: true, //是否可伸缩
- url: false, //ajax方式对应的url地址
- method: ‘POST’, // 数据发送方式
- dataType: ‘xml’, // 数据加载的类型
- errormsg: ‘Connection Error’,//错误提升信息
- usepager: false, //是否分页
- nowrap: true, //是否不换行
- page: 1, //默认当前页
- total: 1, //总页面数
- useRp: true, //是否可以动态设置每页显示的结果数
- rp: 15, // 每页默认的结果数
- rpOptions: [10,15,20,25,40],//可选择设定的每页结果数
- title: false,//是否包含标题
- pagestat: ‘Displaying {from} to {to} of {total} items’,//显示当前页和总页面的样式
- procmsg: ‘Processing, please wait …’,//正在处理的提示信息
- query: ”,//搜索查询的条件
- qtype: ”,//搜索查询的类别
- nomsg: ‘No items’,//无结果的提示信息
- minColToggle: 1, //minimum allowed column to be hidden
- showToggleBtn: true, //show or hide column toggle popup
- hideOnSubmit: true,//隐藏提交
- autoload: true,//自动加载
- blockOpacity: 0.5,//透明度设置
- onToggleCol: false,//当在行之间转换时
- onChangeSort: false,//当改变排序时
- onSuccess: false,//成功后执行
- onSubmit: false // 调用自定义的计算函数
height: 200, //flexigrid插件的高度,单位为px
width: ‘auto’, //宽度值,auto表示根据每列的宽度自动计算
striped: true, //是否显示斑纹效果,默认是奇偶交互的形式
novstripe: false,
minwidth: 30, //列的最小宽度
minheight: 80, //列的最小高度
resizable: true, //是否可伸缩
url: false, //ajax方式对应的url地址
method: ‘POST’, // 数据发送方式
dataType: ‘xml’, // 数据加载的类型
errormsg: ‘Connection Error’,//错误提升信息
usepager: false, //是否分页
nowrap: true, //是否不换行
page: 1, //默认当前页
total: 1, //总页面数
useRp: true, //是否可以动态设置每页显示的结果数
rp: 15, // 每页默认的结果数
rpOptions: [10,15,20,25,40],//可选择设定的每页结果数
title: false,//是否包含标题
pagestat: ‘Displaying {from} to {to} of {total} items’,//显示当前页和总页面的样式
procmsg: ‘Processing, please wait …’,//正在处理的提示信息
query: ”,//搜索查询的条件
qtype: ”,//搜索查询的类别
nomsg: ‘No items’,//无结果的提示信息
minColToggle: 1, //minimum allowed column to be hidden
showToggleBtn: true, //show or hide column toggle popup
hideOnSubmit: true,//隐藏提交
autoload: true,//自动加载
blockOpacity: 0.5,//透明度设置
onToggleCol: false,//当在行之间转换时
onChangeSort: false,//当改变排序时
onSuccess: false,//成功后执行
onSubmit: false // 调用自定义的计算函数
注意:
Head标签必须要引入
- <link rel="stylesheet" href="css/flexigrid/flexigrid.css"
- type="text/css"></link>
- <script type="text/javascript" src="lib/jquery/jquery.js"></script>
- <script type="text/javascript" src="js/flexigrid.js"></script>
<link rel="stylesheet" href="css/flexigrid/flexigrid.css"
type="text/css"></link>
<script type="text/javascript" src="lib/jquery/jquery.js"></script>
<script type="text/javascript" src="js/flexigrid.js"></script>
jquery.js、flexigrid.css、flexigrid.js
三个主要文件
自己要根据自己的文件路径.去引入css\js文件
页面完成启动tomcat测试页面会不会显示控件.
应该是没有问题的,只是没有数据
主要的还是后台的操作
这里由于时间关系只介绍select方法了.
可以看到flex无刷新的路径是一个servlet.看看servlet做了些什么?
- response.setContentType("text/html;charset=UTF-8");
- ReleaseInfoDao rid = new ReleaseInfoDao();
- String hidden = request.getParameter("hidden");
- PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");
ReleaseInfoDao rid = new ReleaseInfoDao();
String hidden = request.getParameter("hidden");
PrintWriter out = response.getWriter();
首先接收路径传过来的hidden值.
因为后面我会根据hidden值做各种操作.所以url重写了一些字段.大家可以不用如此.
- if(hidden.equals("manage")){
- // 获得当前页数
- String pageIndex = request.getParameter("page");
- // 获得每页数据最大量
- String pageSize = request.getParameter("rp");
- // 获得模糊查询文本输入框的值
- String query = new String(request.getParameter("query").getBytes("ISO8859-1"),"UTF-8");
- // 获得模糊查询条件
- String qtype = request.getParameter("qtype");
- if(query==""||("").equals(query)){
- Map pageInfo = new HashMap();
- pageInfo.put("page", pageIndex);
- pageInfo.put("total", rid.getReleaseInfoCount());
- // 数据JSON格式化
- String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfo(Integer.parseInt(pageIndex), Integer.parseInt(pageSize)), pageInfo);
- // response相关处理
- response.setContentType("html/txt");
- response.setCharacterEncoding("utf-8");
- response.setHeader("Pragma", "no-cache");
- response.setHeader("Cache-Control", "no-cache, must-revalidate");
- response.setHeader("Pragma", "no-cache");
- try {
- response.getWriter().write(jsonStr);
- response.getWriter().flush();
- response.getWriter().close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }else{
- Map pageInfo = new HashMap();
- pageInfo.put("page", pageIndex);
- pageInfo.put("total", rid.getReleaseInfoCountLike(qtype, query));
- // 数据JSON格式化
- String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfoLike(Integer.parseInt(pageIndex), Integer.parseInt(pageSize), qtype, query), pageInfo);
- // response相关处理
- response.setContentType("html/txt");
- response.setCharacterEncoding("utf-8");
- response.setHeader("Pragma", "no-cache");
- response.setHeader("Cache-Control", "no-cache, must-revalidate");
- response.setHeader("Pragma", "no-cache");
- try {
- response.getWriter().write(jsonStr);
- response.getWriter().flush();
- response.getWriter().close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
if(hidden.equals("manage")){
// 获得当前页数
String pageIndex = request.getParameter("page");
// 获得每页数据最大量
String pageSize = request.getParameter("rp");
// 获得模糊查询文本输入框的值
String query = new String(request.getParameter("query").getBytes("ISO8859-1"),"UTF-8");
// 获得模糊查询条件
String qtype = request.getParameter("qtype");
if(query==""||("").equals(query)){
Map pageInfo = new HashMap();
pageInfo.put("page", pageIndex);
pageInfo.put("total", rid.getReleaseInfoCount());
// 数据JSON格式化
String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfo(Integer.parseInt(pageIndex), Integer.parseInt(pageSize)), pageInfo);
// response相关处理
response.setContentType("html/txt");
response.setCharacterEncoding("utf-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
try {
response.getWriter().write(jsonStr);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
}
}else{
Map pageInfo = new HashMap();
pageInfo.put("page", pageIndex);
pageInfo.put("total", rid.getReleaseInfoCountLike(qtype, query));
// 数据JSON格式化
String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfoLike(Integer.parseInt(pageIndex), Integer.parseInt(pageSize), qtype, query), pageInfo);
// response相关处理
response.setContentType("html/txt");
response.setCharacterEncoding("utf-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
try {
response.getWriter().write(jsonStr);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
可以看到许多request.getParameter("***");
是后去flexigrid控件的一些参数.
大家可以到flexigrid.js文件里面看到这些参数.
page//获取当前的页数.
rp//每页显示多少行数据
- rp: 20,
rp: 20,
query//点击放大镜出现搜索功能,是Input文本框的值
qtype//是搜索功能后面的select的值
根据query的操作判断是模糊查询还是全部查询数据.
Servlet全部代码看完了.
看看.Dao层的数据层的代码吧.
主要引用Dao的代码如下
主要代码1.
- pageInfo.put("total", rid.getReleaseInfoCount());
- String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfo(Integer.parseInt(pageIndex), Integer.parseInt(pageSize)), pageInfo);
pageInfo.put("total", rid.getReleaseInfoCount());
String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfo(Integer.parseInt(pageIndex), Integer.parseInt(pageSize)), pageInfo);
rid为ReleaseInfoDao的实例对象(发布信息表)
首先我们来看getReleaseInfoCount()方法
- /**
- * 获得信息表所有的数据量,
- * 并返回数据个数
- * @return
- */
- public long getReleaseInfoCount(){
- long count =0l;
- QueryRunner queryRunner = new QueryRunner();
- String query = "select count(*) as num from TB_ReleaseInfo";
- try {
- Map map = (Map)queryRunner.query(DBConnection.getConnection(), query, new MapHandler());
- count = Long.parseLong(map.get("num").toString());
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- DBConnection.close();
- }
- return count;
- }
/**
* 获得信息表所有的数据量,
* 并返回数据个数
* @return
*/
public long getReleaseInfoCount(){
long count =0l;
QueryRunner queryRunner = new QueryRunner();
String query = "select count(*) as num from TB_ReleaseInfo";
try {
Map map = (Map)queryRunner.query(DBConnection.getConnection(), query, new MapHandler());
count = Long.parseLong(map.get("num").toString());
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.close();
}
return count;
}
主要代码2.
- String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfo(Integer.parseInt(pageIndex), Integer.parseInt(pageSize)), pageInfo);
String jsonStr = rid.creReleaseInfoJSON(rid.getReleaseInfo(Integer.parseInt(pageIndex), Integer.parseInt(pageSize)), pageInfo);
这里看到返回的是json格式的数据
主要Dao层方法为creReleaseInfoJSON();getReleaseInfo(int pageIndex,int pageSize);方法
getReleaseInfo代码如下
- /**
- * 分页查询
- * @param pageIndex
- * @param pageSize
- * @return
- */
- public List getReleaseInfo(int pageIndex,int pageSize){
- List releaseInfoList = new ArrayList();
- int beginIndex = (pageIndex-1)*pageSize;
- int endIndex = pageIndex*pageSize;
- QueryRunner queryRunner = new QueryRunner();
- String query = "select * from (" +
- "select rownum rn,rino,rititle,ritype,icname,rihotpoint,ricontent,ridate,riauthor " +
- "from (" +
- "select ri.rino,ri.rititle,ri.ritype,ic.icname,ri.rihotpoint,ri.ricontent,ri.ridate,ri.riauthor" +
- " from TB_ReleaseInfo ri ,TB_InfoCategroy ic where ri.ritype = ic.icno " +
- "order by ri.rino desc) where rownum<=?) where rn>?";
- try {
- releaseInfoList = (List)queryRunner.query(DBConnection.getConnection(), query,new Object[]{new Integer(endIndex),new Integer(beginIndex)},new MapListHandler());
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- DBConnection.close();
- }
- return releaseInfoList;
- }
/**
* 分页查询
* @param pageIndex
* @param pageSize
* @return
*/
public List getReleaseInfo(int pageIndex,int pageSize){
List releaseInfoList = new ArrayList();
int beginIndex = (pageIndex-1)*pageSize;
int endIndex = pageIndex*pageSize;
QueryRunner queryRunner = new QueryRunner();
String query = "select * from (" +
"select rownum rn,rino,rititle,ritype,icname,rihotpoint,ricontent,ridate,riauthor " +
"from (" +
"select ri.rino,ri.rititle,ri.ritype,ic.icname,ri.rihotpoint,ri.ricontent,ri.ridate,ri.riauthor" +
" from TB_ReleaseInfo ri ,TB_InfoCategroy ic where ri.ritype = ic.icno " +
"order by ri.rino desc) where rownum<=?) where rn>?";
try {
releaseInfoList = (List)queryRunner.query(DBConnection.getConnection(), query,new Object[]{new Integer(endIndex),new Integer(beginIndex)},new MapListHandler());
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.close();
}
return releaseInfoList;
}
上述方法的SQL为Oracle的分页查询.MS SQL、MySql等.其他数据库不适用.
creReleaseInfoJSON代码如下:
- /**
- * 数据JSON格式化
- * @param list
- * @param pageInfo
- * @return
- */
- public String creReleaseInfoJSON(List list,Map pageInfo){
- String jsonStr = "";
- List mapList = new ArrayList();
- for(int i=0;i<list.size();i++){
- Map cellMap = new HashMap();
- cellMap.put("id", ((Map)list.get(i)).get("RINo").toString());
- cellMap.put("cell", new Object[]{
- ((Map)list.get(i)).get("RINo"),
- ((Map)list.get(i)).get("RITitle"),
- ((Map)list.get(i)).get("ICName"),
- ((Map)list.get(i)).get("RIHotpoint"),
- ((Map)list.get(i)).get("RIDATE"),
- ((Map)list.get(i)).get("RIAuthor")
- });
- mapList.add(cellMap);
- }
- pageInfo.put("rows", mapList);
- JSONObject object = new JSONObject(pageInfo);
- jsonStr = object.toString();
- return jsonStr;
- }
/**
* 数据JSON格式化
* @param list
* @param pageInfo
* @return
*/
public String creReleaseInfoJSON(List list,Map pageInfo){
String jsonStr = "";
List mapList = new ArrayList();
for(int i=0;i<list.size();i++){
Map cellMap = new HashMap();
cellMap.put("id", ((Map)list.get(i)).get("RINo").toString());
cellMap.put("cell", new Object[]{
((Map)list.get(i)).get("RINo"),
((Map)list.get(i)).get("RITitle"),
((Map)list.get(i)).get("ICName"),
((Map)list.get(i)).get("RIHotpoint"),
((Map)list.get(i)).get("RIDATE"),
((Map)list.get(i)).get("RIAuthor")
});
mapList.add(cellMap);
}
pageInfo.put("rows", mapList);
JSONObject object = new JSONObject(pageInfo);
jsonStr = object.toString();
return jsonStr;
}
返回的JSON格式的数据:
- jsonStr{"total":3,"page":"1","rows":[{"id":"8","cell":[8,"啊啊","什么玩意","否","2009-06-24 14:30:11","admin"]},{"id":"7","cell":[7,"来挑心底1","媒体声音","是","2009-06-24 14:29:55","admin"]},{"id":"3","cell":[3,"新茶品","最热新闻","否","2009-06-24 13:55:00","admin"]}]}
jsonStr{"total":3,"page":"1","rows":[{"id":"8","cell":[8,"啊啊","什么玩意","否","2009-06-24 14:30:11","admin"]},{"id":"7","cell":[7,"来挑心底1","媒体声音","是","2009-06-24 14:29:55","admin"]},{"id":"3","cell":[3,"新茶品","最热新闻","否","2009-06-24 13:55:00","admin"]}]}
JSONObject代码在下面的附件里有.
还有需要解释的地方.
大家可以看到dao
并没有
Connection
PreparedStatement
ResultSet
等对象.
我操作数据使用的是.
commons-dbutils-1.1.jar(下面的附件中也包含有.)
整体的介绍完了.
可以说比较考验个人读代码的能力.个人细心的能力.
上述代码.应该是没有问题的.
因为我测试一点问题没有.
可能是因为您配置或者书写代码的问题..
可能会出现这样那样的困难.
也请不要进行人身攻击.
在做这个的时候.我也碰到许多问题。
耐心些。 没有解决不了的问题.
鄙人写代码很烂. 各位大牛们 就不要拍砖了. 凑活看就行了.
如果什么问题.
请到本人博客留言.
只要是本人会的
定会尽力解决.
花费半个点的功夫.整理一下.. 各位笑纳了.
遗留问题:点击标题.自动排序的问题.. 如果哪位哥们解决了.. 请在本人博客留言.
十分感谢您的帮助
Ps: 很感谢 ayeah 同学..
在此以前. 一直认为是flexgrid. 实际正确的拼写为flexigrid. 十分低级的错误.
呵呵. 还望各位同学见谅.
项目源码:请到这里下载JQuery 插件FlexiGrid 之完全配置与使用-续{附Demo+Data}
- 需要文件.rar (163.9 KB)
- 下载次数: 2841
JQuery 插件FlexiGrid 之完全配置与使用的更多相关文章
- jquery插件FlexiGrid的使用
jquery插件FlexiGrid的使用 已不推荐下载,如要下载去这个连接下载最新的 http://gundumw100.iteye.com/blog/545610 更新于2009-11-30 先看 ...
- [jQuery插件]手写一个图片懒加载实现
教你做图片懒加载插件 那一年 那一年,我还年轻 刚接手一个ASP.NET MVC 的 web 项目, (C#/jQuery/Bootstrap) 并没有做 web 的经验,没有预留学习时间, (作为项 ...
- jQuery插件实例五:手风琴效果[动画效果可配置版]
昨天写了个jQuery插件实例四:手风琴效果[无动画版]那个是没有动画效果的,且可配置性不高,本篇为有动画效果.对于一些数据做了动态的计算,以实现自适应. 欢迎大家入群相互交流,学习,新群初建,欢迎各 ...
- 50个jQuery插件可将你的网站带到另一个高度
Web领域一直在发生变化并且其边界在过去的每一天都在发生变化(甚至不能以小时为计),随着其边界的扩展取得了许多新发展.在这些进步之中,开发者的不断工作创造了更大和更好的脚本,这些脚本以插件方式带来更好 ...
- JQuery插件之Jquery.datatables.js用法及api
1.DataTables的默认配置 $(document).ready(function() { $('#example').dataTable(); } ); 示例:http://www.guoxk ...
- 40 个让你的网站更加友好的 jQuery 插件
一个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个jQuery插件是一个基本的可以扩充jQuery 原型对 ...
- 推荐15款创建漂亮幻灯片的 jQuery 插件
对于设计师,开发者,摄影师或任何创造性的个人和企业,他们自己的网站是展示他们的技能和服务的最佳场所.你可能打算设计一个新的个人作品网站,不管你是从头开始或使用模板,都会需要使用 jQuery 幻灯片插 ...
- 期待已久的2013年度最佳 jQuery 插件揭晓
让人期待已久的2013年度最佳 jQuery 插件揭晓了.在过去的一年里,有很多很多的 jQuery 插件发布出来,而这里文章列出的这些插件从提供的功能更角度来看是其中的佼佼者.相信这些优秀的 jQu ...
- jquery.lazyload 实现图片延迟加载jquery插件
看到了淘宝产品介绍中,图片是在下拉滚动条时加载,这是一个很不错的用户体验.减少了页面加载的时间了,也减轻了服务器的压力,就查了下用JQuery.. 什么是ImageLazyLoad技术 在页面上图 ...
随机推荐
- linux xargs参数
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...
- BI案例:KPI在商业智能中的应用(ZT)
KPI(Key Performance Indication)即关键业绩指标,是通过对组织内部某一流程的输入端.输出端的关键参数进行设置.取样.计算.分析,衡量流程绩效的一种目标式量化管理指标,是把企 ...
- javassist AOP
对于AOP,这个概念,不用解释,主要用途很多,我这里主要是为了后续研究如何实现APM做准备.前面研究了动态代理实现AOP,考虑到性能的问题,改用javassist直接修改直接码实现! javassis ...
- 【linux】bash常用快捷键
Ctrl + r:逆向搜索命令历史 Ctrl + l:清屏 Ctrl + c:终止命令 Ctrl + u:删除光标前的指令 Ctrl + k:删除光标后的指令 Ctrl + d:退出登陆
- Async 和 Await的性能(.NET4.5新异步编程模型)
异步编程长时间以来一直都是那些技能高超.喜欢挑战自我的开发人员涉足的领域 — 这些人愿意花费时间,充满热情并拥有心理承受能力,能够在非线性的控制流程中不断地琢磨回调,之后再回调. 随着 Microso ...
- 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页
如下图,在oracle官网下载了一个JAVA的API文档,双击index.html时打开是浏览器的首页,不知道为什么?请问怎样才能以chm文档格式显示?
- activiti基础操作
package activitiTest; import java.io.InputStream; import java.util.List; import java.util.zip.ZipInp ...
- 最小费用最大流 POJ2195-Going Home
网络流相关知识参考: http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html 出处:優YoU http://blog.csdn. ...
- Redis配置文件解读
转载自:http://www.cnblogs.com/daizhj/articles/1956681.html 对部分配置选项做了一些说明 把配置项目从上到下看了一遍,有了个大致的了解,暂时还用不到一 ...
- 黄聪:Discuz!的SEO优化策略一:如何设置标题 & 如何去掉Powered by Discuz!尾巴
1.如何设置标题 进入 管理中心 -- 全局 -- SEO设置 -- 论坛 -- 标题 ,设置你的网站标题和描述. PS:有人问keywords要不要设置,其实现在keywords对SEO的影响已经微 ...