jQuery插件简单学习实例教程
本文实例讲述了jQuery插件及其用法。分享给大家供大家参考,具体如下:
(1)异步分页插件flexgrid
1)前台js
<%@pagelanguage="Java"contentType="text/html;charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"> <title>Inserttitlehere</title> <scripttype="text/JavaScript"src="js/jQuery-1.8.0.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/flexigrid.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/flexigrid.pack.js"charset="utf-8"></script> <linkhref="css/flexigrid.css"rel="Stylesheet"> <linkhref="css/flexigrid.pack.css"rel="Stylesheet"> <scripttype="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:'正在处理,请稍候' }); }); functiontest(com,grid){ if(com=='删除'){ //alert($(".trSelectedtd:first",grid).text()); vara=confirm('是否删除这'+$('.trSelected',grid).length+'条记录吗?'); if(a){ $(".trSelected",grid).remove(); //删除数据的ajax请求 } }elseif(com=='增加'){ alert('增加一条!'); //打开一个页面,新增数据 }else{ vartr=$(".trSelected:first",grid); /*alert(grid.html()); */vardata=[]; vartds=tr.children(); for(vari=0;i<tds.length;i++){ data[data.length]=$(tds[i]).text(); //alert($(tds[i]).text()); } //打开一个页面进行数据修改 } //$("#flexigridTable").flexReload(); } </script> </head> <body> <tableid="flexigridTable"align="center"></table> </body> </html>
2)后台action
最后只需返回一个名字为 rows的json即可
(2)放大镜,magnify
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title> <scripttype="text/javascript"src="js/jquery-1.8.0.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/jquery.magnify-1.0.2.js"charset="utf-8"></script> <scripttype="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:'1pxsolid#33cc33',width:400,height:400}//镜台CSS样式 }); }); </script> </head> <body> <ahref="image/ipad.jpg"id="bigImage"> <imgalt=""src="image/ipad.jpg"width="350"height="150"> </a> <br> <ahref="image/computer.jpg"id="computerId"> <imgalt=""src="image/computer.jpg"width="200"height="150"> </a> </body> </html>
(3)autoComplete
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>autoCompletejquery</title> <scripttype="text/javascript"src="js/jquery-1.8.0.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/jquery.autocomplete.js"charset="utf-8"></script> <linkhref="css/jquery.autocomplete.css"rel="Stylesheet"> <scripttype="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){ varrows=[]; vard=resultData.serarchResult; for(vari=0;i<d.length;i++){ rows[i]={ data:d[i], value:d[i].catalogId, result:d[i].catalogName }; } returnrows; }, formatItem:function(row,i,max){ returnrow.catalogName+" ["+row.count+"]"; //returnrow.id+""; //结果中的每一行都会调用这个函数,显示的格式,row为每一个对象,i为下表从一开始,max为最大下标 } }).result(function(event,item){ alert(item.catalogName); }); }); </script> </head> <body> <inputtype="text"style="width:474px;"maxlength="100"id="kw"name="wd"> <inputtype="submit"value="submit"name="search"> </body> </html>
(4)异步上传
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title> <scripttype="text/javascript"src="js/jquery-1.8.0.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/ajaxupload.3.6.js" charset="utf-8"></script> <scripttype="text/javascript"> $(document).ready(function(){ varuploadObj={ action:'ajaxFileUploadAction.html', name:'upload', onSubmit:function(file,type){ //alert("gag"); }, onComplate:function(file,data){ alert("true"); } }; newAjaxUpload($("[type='submit']"),uploadObj); }); </script> </head> <body> <formaction=""enctype="multipart/form-data"method="post"> <inputtype="file"name="upload"><inputtype='submit' value="上传"> </form> </body> </html>
(5)日历
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title> <scripttype="text/javascript"src="js/jquery-1.8.0.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/jquery-ui.js"charset="utf-8"></script> <scripttype="text/javascript"src="js/ui.datepicker-zh-CN.js"charset="utf-8"></script> <linkhref="css/jquery-ui.css"rel="Stylesheet"> <scripttype="text/javascript"> $(document).ready(function(){ $("[name='data']").datepicker({ //dateFormat:'yy-mm-dd' }); }); </script> </head> <body> <inputtype="text"name="data"> </body> </html>
后台的action如下:
packagecom.jquery.plugin.action; importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.util.ArrayList; importjava.util.List; importjavax.servlet.http.HttpServletRequest; importorg.apache.struts2.ServletActionContext; importorg.apache.struts2.json.annotations.JSON; importcom.jquery.plugin.dao.DataDao; importcom.jquery.plugin.pojo.Catalog; importcom.opensymphony.xwork2.Action; importcom.opensymphony.xwork2.ActionSupport; publicclassJQueryActionextendsActionSupport{ /** * */ privatestaticfinallongserialVersionUID=1L; privateStringq; privateIntegerrp; privateIntegerpage; privateIntegertotal; privateList<Catalog>serarchResult=newArrayList<Catalog>(); privateList<Catalog>rows=newArrayList<Catalog>(); privateStringsortname; privateFileupload; privateStringuploadFileName; publicStringgetQ(){ returnq; } publicvoidsetQ(Stringq){ this.q=q; } publicIntegergetRp(){ returnrp; } publicvoidsetRp(Integerrp){ this.rp=rp; } publicIntegergetPage(){ returnpage; } publicvoidsetPage(Integerpage){ this.page=page; } @JSON(name="total") publicIntegergetTotal(){ returntotal; } publicStringredirect(){ System.out.println("go.."); returnAction.SUCCESS; } //{age:1}[search:{age:1}] @JSON(name="serarchResult") publicList<Catalog>getSerarchResult(){ returnserarchResult; } publicList<Catalog>getRows(){ returnrows; } publicvoidsetRows(List<Catalog>rows){ this.rows=rows; } publicStringgetSortname(){ returnsortname; } publicvoidsetSortname(Stringsortname){ this.sortname=sortname; } publicFilegetUpload(){ returnupload; } publicvoidsetUpload(Fileupload){ this.upload=upload; } publicStringgetUploadFileName(){ returnuploadFileName; } publicvoidsetUploadFileName(StringuploadFileName){ this.uploadFileName=uploadFileName; } publicStringautoCompleteJQuery(){ System.out.println("q:"+q); List<Catalog>result=DataDao.getList(); if(!"".equals(q)){ for(Catalogcatalog:result){ if(catalog.getCatalogName().toLowerCase().contains(q.toLowerCase())){ serarchResult.add(catalog); } } } System.out.println(serarchResult.size()); returnAction.SUCCESS; } publicStringflexigrid(){ try{ List<Catalog>result=DataDao.getList(); IntegerstartIndex=(page-1)*rp; IntegerendIndex=startIndex+rp; total=result.size(); while(endIndex>result.size()){ endIndex--; } System.out.println("page:"+page+":total:"+total); System.out.println("sortname:"+sortname); for(inti=startIndex;i<(endIndex);i++){ rows.add(result.get(i)); } }catch(Exceptione){ e.printStackTrace(); } returnAction.SUCCESS; } publicStringajaxFileUpload(){ System.out.println("begin..."); BufferedOutputStreamout=null; BufferedInputStreamin=null; StringuploadPath=null; StringcontextPath=null; try{ //fileName=URLEncoder.encode(fileName,"GB2312"); System.out.println("fileName:"+uploadFileName); byte[]buffer=newbyte[1024]; HttpServletRequestrequest=ServletActionContext.getRequest(); contextPath=request.getSession().getServletContext().getRealPath("/"); uploadPath=contextPath+"/upload/"+uploadFileName; System.out.println(uploadPath); out=newBufferedOutputStream(newFileOutputStream(uploadPath)); intlen=0; in=newBufferedInputStream(newFileInputStream(upload)); while((len=in.read(buffer,0,buffer.length))!=-1){ out.write(buffer,0,len); out.flush(); } }catch(FileNotFoundExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } }catch(IOExceptione){ e.printStackTrace(); } } System.out.println("上传成功"); returnnull; } }
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jquery中Ajax用法总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。