@Hubertoo
2017-09-29T07:28:22.000000Z
字数 5974
阅读 536
笔记
//可以用try-catch屏蔽掉js某代码块的错误或者用下面方法<script language="javascript" type="text/javascript">function killerror() {return true;}window.onerror = killerror; //加载窗口时调用KILLERROR函数</script>//绑定点击Enter键触发事件$("#search").keydown(function(event){if(event.keyCode == 13){console.log("触发了Enter键");}}$("#search").blur(function(){console.log("失去焦点事件"); //focus是得到焦点事件}//点击importBtn导入弹框$("#importBtn").click(function(){$('#import').modal(); //id为import的模块框见:E:\codes\ltemr-web-hgp\src\main\webapp\module\helpdocs\lte_helpdocs.jsp})var div = $("#addPdf").empty(); //清空元素//动态添加标签embedfunction addElementEmbed(bigId){var div = document.getElementById("addPdf");//添加元素前需要清空原来就有的元素var div = $("#addPdf").empty();var embed = document.createElement("embed");var embed = document.createElement("embed");embed.setAttribute("id", "pdfPlayer");embed.setAttribute("type", "application/pdf");embed.style.height = "100%";embed.style.width = "100%";embed.src = "/helpdocs/"+ bigId +".pdf";div.append(embed);}//uploadify插件使用//jsp代码<input type="file" id="uploadify" name="uploadify"/><button type="button" onclick="$('#uploadify').uploadify('upload');" class="btn btn-primary">确定</button><button type="button" class="btn btn-default closemodel" data-dismiss="modal">取消</button>//js代码$("#uploadify").uploadify({//指定swf文件'swf': $.AdminLTE.ctx+'/static/lib/uploadify/uploadify.swf',//后台处理的页面'uploader': $.AdminLTE.ctx + "/modules/helpdocs/upload.do?id=" + bigId,//选择文件到文件队列中后的每一个文件上的关闭按钮图标'cancelImg':$.AdminLTE.ctx+'/static/lib/uploadify/uploadify-cancel.png','button_image_url':$.AdminLTE.ctx+'/static/lib/uploadify/button_image.png',//按钮显示的文字'buttonText': '添加文件',//显示的高度和宽度,默认 height 30;width 120'height': 25,'width': 100,//'method': 'POST',//附件大小限制//'fileSizeLimit' : '30720KB',//附件个数限制'uploadLimit' : 1,//上传文件的类型 默认为所有文件 'All Files' ; '*.*'//在浏览窗口底部的文件类型下拉菜单中显示的文本//'fileTypeDesc': 'Image Files',//允许上传的文件后缀'fileTypeExts': '*.pdf',//发送给后台的其他参数通过formData指定// 'formData': { 'map_style': ''},//上传文件页面中,你想要用来作为文件队列的元素的id, 默认为false 自动生成, 不带#//'queueID': 'fileQueue',//选择文件后自动上传'auto': false,//设置为true将允许多文件上传'multi': false,//上传成功后执行'onUploadSuccess': function (file, data,response) {$("#uploadify").uploadify("destroy");showAlert("提示信息","保存成功!");$('#import').modal('hide');init();},'onUploadStart' : function(file) {$.messager.progress({title : '提示信息!',text : '正在处理,请稍后....'});},'onUploadComplete':function(){}});//java代码@ResponseBody@RequestMapping(value = "/upload", method = {RequestMethod.POST, RequestMethod.GET})public Object upload(HttpServletRequest request) throws Exception{Map<String, Object> query = WebUtils.getParametersStartingWith(request, "");QueryCriteria criteria = new QueryCriteria();//如果ajax出现乱码,则需要转码,在部署环境不需要转码criteria.put("id",UTF2GBK.urlToUTF8(query.get("id").toString()));MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;// 获得文件:Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();Map<String, String> result = new HashMap<String, String>();result.put("result", "导入成功");InputStream is = null;OutputStream os = null;try{String datePath2 =request.getSession().getServletContext().getRealPath("/");String datePath = datePath2 + "../helpdocs/" + criteria.get("id") + ".pdf";File date = new File(datePath);is = fileMap.values().iterator().next().getInputStream();os = new FileOutputStream(date);byte[] flush = new byte[1024];int len = 0;while(0<=(len=is.read(flush))){os.write(flush, 0, len);}}catch (Exception e){e.printStackTrace();}finally{//关闭文件流if(os != null){try {os.close();} catch (Exception e) {logger.error(e.getMessage(), e);}}if(is != null){try {is.close();} catch (Exception e) {logger.error(e.getMessage(), e);}}}return result;}//zTree插件的使用var myTreeSetting = {view: {showLine: false,selectedMulti: false,showIcon: false,dblClickExpand: false //屏蔽掉双击事件//showTitle: false},async: {enable: true,type: "post",dataType:"json",/*Ajax 获取的数据类型,默认值:"text"。这里我使用了json。*/url: $.AdminLTE.ctx + "/modules/helpdocs/getTreeContent.do?searchValue=" + searchValue,/*Ajax 获取数据的 URL 地址,默认值:"".设置固定的异步加载 url请注意地址的路径,确保页面能正常加载。 url 内也可以带参数,这些参数就只能是通过 get方式提交了,并且请注意进行data格式。不同的树目录根据不同的数据,在服务器端编写好不同的url,将其配置在这里即可。*/autoParam:["id=pId"]/*用于对 Ajax 返回数据进行预处理的函数。之后代码中会给出filter的定义*//*dataFilter: filter*/},data: {simpleData: {enable: true,/*简单模式的 JSON 数据需要使用 id/pId表示节点的父子包含关系enable:true即表示使用简单数据格式,不配置或配置为false则为标准数据格式.*/idKey:"id",pIdKey:"pId",rootPId:0},key: {title: "description"}},callback:{onClick: zTreeOnClick,onAsyncSuccess: zTreeOnAsyncSuccess,onRightClick: zTreeOnRightClickdblClickExpand: false//屏蔽掉双击事件*/}};//详细树的使用见API//获取当前时间Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateStr = formatter.format(currentTime);
each处理一维数组var arr1 = [ "aaa", "bbb", "ccc" ];$.each(arr1, function(i,val){alert(i);alert(val);});alert(i)将输出0,1,2alert(val)将输出aaa,bbb,ccceach处理二维数组var arr2 = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]$.each(arr, function(i, item){alert(i);alert(item);});arr2为一个二维数组,item相当于取这二维数组中的每一个数组。item[0]相对于取每一个一维数组里的第一个值alert(i)将输出为0,1,2,因为这二维数组含有3个数组元素alert(item)将输出为 ['a', 'aa', 'aaa'],['b', 'bb', 'bbb'],['c', 'cc', 'ccc']对此二位数组的处理稍作变更之后var arr = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]$.each(arr, function(i, item){$.each(item,function(j,val){alert(j);alert(val);});});alert(j)将输出为0,1,2,0,1,2,0,1,2alert(val)将输出为a,aa,aaa,b,bb,bbb,c,cc,ccceach处理json数据,这个each就有更厉害了,能循环每一个属性var obj = { one:1, two:2, three:3};each(obj, function(key, val) {alert(key);alert(val);});这里alert(key)将输出one two threealert(val)将输出one,1,two,2,three,3这边为何key不是数字而是属性呢,因为json格式内是一组无序的属性-值,既然无序,又何来数字呢。而这个val等同于obj[key]ecah处理dom元素,此处以一个input表单元素作为例子。如果你dom中有一段这样的代码<input name="aaa" type="hidden" value="111" /><input name="bbb" type="hidden" value="222" /><input name="ccc" type="hidden" value="333" /><input name="ddd" type="hidden" value="444"/>然后你使用each如下$.each($("input:hidden"), function(i,val){alert(val);alert(i);alert(val.name);alert(val.value);});那么,alert(val)将输出[object HTMLInputElement],因为它是一个表单元素。alert(i)将输出为0,1,2,3alert(val.name);将输出aaa,bbb,ccc,ddd,如果使用this.name将输出同样的结果alert(val.value); 将输出111,222,333,444,如果使用this.value将输出同样的结果$("input:hidden").each(function(i,val){alert(i);alert(val.name);alert(val.value);});