1.获取select的值:$("#village option:selected").val();
2.keypess、kewdown、keyup的区别:在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符;如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown。
keydown:用户在键盘上按下某按键时发生。一直按着某按键则会不断触发(opera浏览器除外)。
keypress:用户按下一个按键,并产生一个字符时发生(也就是不管类似shift、alt、ctrl之类的键,就是说用户按了一个能在屏幕上输出字符的按键keypress事件才会触发)。一直按着某按键则会不断触发。
keyup:用户释放某一个按键是触发。
下面代码:产生字符时发生,测试按下enter键盘keypress会触发;如果换作keydown,按下任意键都会触发,最好用keypress。
node.find(".searchData").keypress(function (event) {
if (event.charCode == "13") {console.log(event.charCode)
node.find(".searchButton").click();
}
});
3.动态添加下拉表单,layui渲染失效的解决方法:form 模块 的自动化渲染是会对其失效,使用form.render()更新全部。form.render(type, filter);type为表单的type类型,filter为 class="layui-form" 所在元素的 lay-filter="" 的值。
4.获取键值:for(let x in obj) { console.log(x,obj[x]) }
eg:layui.use('table', function (header) {//房屋用途筛选统计表
var table = layui.table;
var colsListsTb=new Array(),colsListsTh=new Array();
let colslistX=fwdata1[0];
let fwdataArr=fwdata.split(',');
colsListsTh=[{ field:"用途",rowspan: 2, title: "用途", minWidth: 100, align: "center"}]
for( let x in fwdataArr){
colsListsTh.push({title:fwdataArr[x], align:'center', minWidth: 100,colspan: 2});
}
colsListsTh.push({ field:"总计",rowspan: 1, title: "总计", minWidth: 100, align: "center",colspan: 2})
for( let x in colslistX){
if(x!=="用途" && x!=="总计"){colsListsTb.push({field:x, title:x, align:'center', minWidth: 100});}
}
table.render({
elem: '#fwyt1',
data: fwdata1,
// page: true, //开启分页
size: 'sm', //小尺寸的表格
limit:40,//限制每页显示的最大数量
cols: [
colsListsTh,
colsListsTb
]
});
});
var regGy = new RegExp("国有");
for( let x in colslistX){//地类类型中用旧接口改动前端渲染数据(将含有‘集体’字段的值过滤掉,将‘国有’字段两字删掉)
if(x.indexOf("集体")>-1){continue;}
var regGystr=x.replace(regGy,"");
if(x!=="占地面积总计"){//旧的接口中有“国有占地面积总计”和'占地面积统计',上面已经删除‘国有’字段,故此处去掉一个
colsListsTb.push({field:x, title:regGystr, align:'center', minWidth: 100});
}
}
5.echarts表中如表位置调整:
x 为直角坐标系内绘图网格左上角横坐标,数值单位px,支持百分比(字符串),如'50%'(显示区域横向中心);
y 为左上纵坐标,x2为右下横坐标,y2为右下纵坐标。
6.concat() 方法用于连接两个或多个数组。
function CallbackForLegend() {//图例显示列表中的成员村界,社区界,国有土地,集体土地,房屋数据,地类数据
return dklegendsetting.concat(fwlegendsetting,fwlegendsetting2,fwlegendsettingJttd,fwlegendsettingFwsj,fwlegendsettingDlfb);
}
7.清除区域查询事件(bug是选择区域查询后,用测量工具还会调用区域查询方法)
function queryByExtent() {
__drawToolbar.activate(esri.toolbars.Draw.POLYGON);
if (__drawEvent) dojo.disconnect(__drawEvent);
__drawEvent = dojo.connect(__drawToolbar, 'onDrawEnd', function (geometry_search) {
map.graphics.clear();
map.infoWindow.hide();var shuxingJson=[];var onlyId='';
require(["esri/graphic", "esri/geometry/Polygon", "esri/geometry/Extent", "esri/SpatialReference"], function (Graphic, Polygon, Extent, SpatialReference) {
websocket.send("JsonSearchGBDFWByExtentFilterRequest", $.extend(userData, { extent: geometry_search.getExtent() }), function (response) {
for (var i = 0; i < response.data.fwlist.length; i++) {
var item = response.data.fwlist[i];
// if (item.polygon == null) {
// continue;
// }
if (item.polygon.rings.length===0) {
continue;
}
var geometry = new Polygon(item.polygon);
//排除不在查询范围的数据
var flag = false;
// if (geometry.rings.length===0) break;
for (var k = 0; k < geometry.rings[0].length; k++) {
var ring = geometry.rings[0][k];
var point = new esri.geometry.Point(ring[0], ring[1], new esri.SpatialReference({ wkid: 2436 }));
if (geometry_search.contains(point)) {
flag = true;
break;
}
}
if (!flag) continue;
var graphic = new Graphic(geometry, symbol_dk_high);
graphic.setAttributes(item.fw);
shuxingJson.push(item.fw);onlyId+=item.fw.FWID+",";
map.graphics.add(graphic);
};
websocket.send("JsonStaticGBDFWRequest", $.extend(userData, { ONLYID:onlyId }), function (_json) {
var dataId=_json.data;
fwSearchInfo(shuxingJson,dataId);
$(".chartBoxFrame2").removeClass("hide");
$(".esriPopup").removeClass('hide');//信息弹框去掉区域查询时添加的hide
$("#clickTj").removeClass('layui-this');//控制区域查询表单显示,默认显示属性表
$("#clickSx").addClass('layui-this');
})
});
});
__drawToolbar.deactivate();//查询结束后清除事件
dojo.disconnect(__drawEvent);//清除区域查询绑定事件
});
}
8.多选下拉框插件在本项目中存在的bug(选择一次后,下拉框就会关闭)
$(document).on('click', function (e) {
//if语句解决插件下拉框选择一次后,下拉框就关闭(插件单独运行无bug,在本项目中存在此bug)
if($(e.target).parent().hasClass("layui-unselect")||$(e.target).parent().hasClass("layui-anim-upbit")){$(e.target).parents('.' + SELECT).addClass(SELECTED);}
($(e.target).parents('.' + SELECT).length <= 0) && (options.reElem.hasClass(SELECTED)) ? options.reElem.removeClass(SELECTED): "";
});