本文实例讲述了jQuery插件及其用法。分享给大家供大家参考,具体如下:
(1)异步分页插件flexgrid
1)前台js
<%@ page language=\"Java\" contentType=\"text/html; charset=utf-8\" pageEncoding=\"utf-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"> <title>Insert title here</title> <script type=\"text/JavaScript\" src=\"js/jQuery-1.8.0.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/flexigrid.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/flexigrid.pack.js\" charset=\"utf-8\"></script> <link href=\"css/flexigrid.css\" rel=\"Stylesheet\"> <link href=\"css/flexigrid.pack.css\" rel=\"Stylesheet\"> <script type=\"text/javascript\" charset=\"utf-8\"> $(document).ready(function() { $(\"#flexigridTable\").flexigrid({ url : \'flexigridAction.html\', //请求数据的路径 method : \'POST\', //请求方式 dataType : \'json\', //返回的数据类型 colModel : [ { //对table的组织 display : \'编 号\', //表头信息 name : \'id\', //对应json的字段 width : 200, sortable : true, //是否可排序 align : \'center\', hide :false //是否可见 }, { display : \'分类编号\', name : \'catalogId\', width : 200, sortable : true, align : \'center\' }, { display : \'分类名称\', name : \'catalogName\', width : 200, sortable : true, align : \'center\' }, { display : \'分类总数\', name : \'count\', width : 200, sortable : false, align : \'center\' } ], buttons : [ { //增加button name : \'增加\', //button的value bClass : \'add\', //样式 onpress : test //事件 }, { name : \'删除\', bClass : \'delete\', onpress : test },{ name : \'修改\', bClass : \'modify\', onpress : test }, { separator : true //是否有分隔 } ], sortname : \'id\', //按那一列排序 useRp : true, //是否可以动态设置每一页的结果数 page : 1, //默认的当前页 /* total : 4, //总的条数,在后台进行设置即可 */ showTableToggleBtn : false, //是否显示【显示隐藏Grid】的按钮 width : 850, height : 300, rp : 3, //每一页的默认数 usepager : true, //是否分页 rpOptions : [ 3, 6, 9, 15 ], //可选择设定的每页结果数 resizable:true , //table是否可以伸缩 title:\'商品信息\', errormsg:\'加载数据出错\', procmsg:\'正在处理,请稍候\' }); }); function test(com, grid) { if (com == \'删除\') { //alert($(\".trSelected td:first\",grid).text()); var a = confirm(\'是否删除这 \' + $(\'.trSelected\', grid).length + \' 条记录吗?\'); if (a) { $(\".trSelected\", grid).remove(); //删除数据的ajax请求 } } else if (com == \'增加\') { alert(\'增加一条!\'); //打开一个页面,新增数据 }else{ var tr = $(\".trSelected:first\",grid); /* alert(grid.html()); */ var data = []; var tds = tr.children(); for(var i = 0 ; i < tds.length ; i++){ data[data.length] = $(tds[i]).text(); //alert($(tds[i]).text()); } //打开一个页面进行数据修改 } //$(\"#flexigridTable\").flexReload(); } </script> </head> <body> <table id=\"flexigridTable\" align=\"center\"></table> </body> </html>
2)后台action
最后只需返回一个 名字为 rows的json即可
(2)放大镜,magnify
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>Insert title here</title> <script type=\"text/javascript\" src=\"js/jquery-1.8.0.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/jquery.magnify-1.0.2.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\"> $(document).ready(function(){ $(\"#bigImage\").magnify(); //直接使用默认的magnify $(\"#computerId\").magnify({ showEvent: \'mouseover\', //显示放大镜效果时需要触发事件 hideEvent: \'mouseout\', //隐藏放大镜效果时需要触发事件 lensWidth: 60, //鼠标在小图片中移动的提示镜头宽度 lensHeight: 60, //鼠标在小图片中移动的提示镜头高度 preload: false, //是否预先加载 stagePlacement: \'right\', //放大图片后显示在小图片的方向 loadingImage: \'image/ipad.jpg\', //加载图片时的提示动态小图片 lensCss: { backgroundColor: \'#cc0000\', //鼠标在小图片中移动的提示镜头CSS样式 border: \'0px\', //放大图片的边框效果 opacity: 0 }, //不透明度 stageCss: { border: \'1px solid #33cc33\',width:400,height:400} //镜台CSS样式 }); }); </script> </head> <body> <a href=\"image/ipad.jpg\" id=\"bigImage\"> <img alt=\"\" src=\"image/ipad.jpg\" width=\"350\" height=\"150\"> </a> <br> <a href=\"image/computer.jpg\" id=\"computerId\"> <img alt=\"\" src=\"image/computer.jpg\" width=\"200\" height=\"150\"> </a> </body> </html>
(3)autoComplete
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>autoComplete jquery</title> <script type=\"text/javascript\" src=\"js/jquery-1.8.0.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/jquery.autocomplete.js\" charset=\"utf-8\"></script> <link href=\"css/jquery.autocomplete.css\" rel=\"Stylesheet\"> <script type=\"text/javascript\"> $(document).ready( function() { $(\"#kw\").autocomplete( \"autoCompleteJQueryAction.html\", { minChars : 1, //在触发autoComplete前用户至少需要输入的字符数.Default: 1 //matchContains : true, mustMatch : false, //如果设置为true,autoComplete只会允许匹配的结果出现在输入框 dataType : \'json\', selectFirst:false, autoFill:false,//自动填充值 matchCase:false, //比较是否开启大小写敏感开关,默认false(指向后台传递的数据大小写) scroll:true, //当结果集大于默认高度时是否使用卷轴显示Default: true parse : function(resultData) { var rows = []; var d = resultData.serarchResult; for ( var i = 0; i < d.length; i++) { rows[i] = { data : d[i], value : d[i].catalogId, result : d[i].catalogName }; } return rows; }, formatItem : function(row,i,max) { return row.catalogName + \" [\" + row.count + \"]\"; //return row.id+\"\"; //结果中的每一行都会调用这个函数,显示的格式,row为每一个对象,i为下表从一开始,max为最大下标 } }).result(function(event,item){ alert(item.catalogName); }); }); </script> </head> <body> <input type=\"text\" style=\"width:474px;\" maxlength=\"100\" id=\"kw\" name=\"wd\"> <input type=\"submit\" value=\"submit\" name=\"search\"> </body> </html>
(4)异步上传
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>Insert title here</title> <script type=\"text/javascript\" src=\"js/jquery-1.8.0.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/ajaxupload.3.6.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\"> $(document).ready(function() { var uploadObj = { action : \'ajaxFileUploadAction.html\', name : \'upload\', onSubmit : function(file, type) { //alert(\"gag\"); }, onComplate : function(file, data) { alert(\"true\"); } }; new AjaxUpload($(\"[type=\'submit\']\"), uploadObj); }); </script> </head> <body> <form action=\"\" enctype=\"multipart/form-data\" method=\"post\"> <input type=\"file\" name=\"upload\"><input type=\'submit\' value=\"上传\"> </form> </body> </html>
(5)日历
<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <title>Insert title here</title> <script type=\"text/javascript\" src=\"js/jquery-1.8.0.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/jquery-ui.js\" charset=\"utf-8\"></script> <script type=\"text/javascript\" src=\"js/ui.datepicker-zh-CN.js\" charset=\"utf-8\"></script> <link href=\"css/jquery-ui.css\" rel=\"Stylesheet\"> <script type=\"text/javascript\"> $(document).ready(function(){ $(\"[name=\'data\']\").datepicker({ //dateFormat:\'yy-mm-dd\' }); }); </script> </head> <body> <input type=\"text\" name=\"data\"> </body> </html>
后台的action如下:
package com.jquery.plugin.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import org.apache.struts2.json.annotations.JSON; import com.jquery.plugin.dao.DataDao; import com.jquery.plugin.pojo.Catalog; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public class JQueryAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; private String q ; private Integer rp; private Integer page; private Integer total; private List<Catalog> serarchResult = new ArrayList<Catalog>(); private List<Catalog> rows = new ArrayList<Catalog>(); private String sortname; private File upload; private String uploadFileName; public String getQ() { return q; } public void setQ(String q) { this.q = q; } public Integer getRp() { return rp; } public void setRp(Integer rp) { this.rp = rp; } public Integer getPage() { return page; } public void setPage(Integer page) { this.page = page; } @JSON(name=\"total\") public Integer getTotal() { return total; } public String redirect(){ System.out.println(\"go..\"); return Action.SUCCESS; } //{age:1}[search:{age:1}] @JSON(name=\"serarchResult\") public List<Catalog> getSerarchResult() { return serarchResult; } public List<Catalog> getRows() { return rows; } public void setRows(List<Catalog> rows) { this.rows = rows; } public String getSortname() { return sortname; } public void setSortname(String sortname) { this.sortname = sortname; } public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; } public String autoCompleteJQuery(){ System.out.println(\"q:\"+q); List<Catalog> result = DataDao.getList(); if(!\"\".equals(q)){ for (Catalog catalog : result) { if(catalog.getCatalogName().toLowerCase().contains(q.toLowerCase())){ serarchResult.add(catalog); } } } System.out.println(serarchResult.size()); return Action.SUCCESS; } public String flexigrid(){ try { List<Catalog> result = DataDao.getList(); Integer startIndex = (page-1)*rp; Integer endIndex = startIndex+rp; total = result.size(); while(endIndex>result.size()){ endIndex--; } System.out.println(\"page:\"+page+\":total:\"+total); System.out.println(\"sortname:\"+sortname); for(int i = startIndex ;i < (endIndex);i++){ rows.add(result.get(i)); } } catch (Exception e) { e.printStackTrace(); } return Action.SUCCESS; } public String ajaxFileUpload(){ System.out.println(\"begin...\"); BufferedOutputStream out = null ; BufferedInputStream in = null ; String uploadPath = null ; String contextPath = null; try { //fileName = URLEncoder.encode(fileName, \"GB2312\"); System.out.println(\"fileName:\"+uploadFileName); byte [] buffer = new byte[1024]; HttpServletRequest request = ServletActionContext.getRequest(); contextPath = request.getSession().getServletContext().getRealPath(\"/\"); uploadPath = contextPath+\"/upload/\"+uploadFileName; System.out.println(uploadPath); out = new BufferedOutputStream(new FileOutputStream(uploadPath)); int len = 0 ; in = new BufferedInputStream(new FileInputStream(upload)); while((len = in.read(buffer, 0, buffer.length))!=-1){ out.write(buffer, 0, len); out.flush(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { if(out != null){ out.close(); } if(in != null){ in.close(); } } catch (IOException e) { e.printStackTrace(); } } System.out.println(\"上传成功\"); return null; } }
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jquery中Ajax用法总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
本文地址:https://www.stayed.cn/item/834
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我