easyui中文API地址(避免踩坑):http://www.92ui.net/
1.在拼接字符串往某一个元素中填充时,easyui的格式会不起作用。
例如:
动态添加easyui控件<input class=" easyui-textbox" > 这样是无效的,因为easyui没有实时监控,所以必须动态渲染$.parser.parse();
如下一段代码就用到了这个:
tes.ajax.get(urls.getBtn, null, function (result) {
if (result.Success) {
var data = result.Value;
var fileName = data.files;
var data1 = "";
for (var j = 0, len = fileName.length; j < len; j++) {
if (fileName[j].OriginalPath != "Thumbs.db") {
data1 += "<img class=\"easyui-linkbutton easyui-tooltip tooltip-f l-btn l-btn-small\" style=\"margin-top:1px;display:'inline'\" onclick=\"imgClick(this,'" + fileName[j].OriginalPath+"')\" src=\"/Scripts/jquery-easyui-1.8.5/themes/iconsExtension/" + fileName[j].OriginalPath + "\" />"; }
//var icon = fileName[j].OriginalPath;
//icon = "icon-" + icon.replace(".png", " ");
//data1 += "<a class=\"easyui-linkbutton\" style=\"margin-top:1px;display:'inline'\" onclick=\"imgClick(this,'" + fileName[j].OriginalPath + "')\" data-options=\"plain: true, iconCls: '" + icon + "'\" />";
}
$("#@ViewBag.PageId-toolbar").html(data1);
$.parser.parse($("#@ViewBag.PageId-toolbar").html(data1));
}
});
2.点击事件中传递的值为【Object,Object】类型的参数,但在点击事件中获取不到。
JSON.stringify()
方法将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串,如果指定了 replacer 是一个函数,则可以选择性地替换值,或者如果指定了 replacer 是一个数组,则可选择性地仅包含数组指定的属性。
例如在我拼接字符串的时候,给button动态加点击事件:
if ((j != 1 && (j + 1) % 4 == 0) || j == len1 - 1 || j == 3) {
indexStr += "<button id=\"" + data[i].children[j].id + "\" iconCls=\"icon-" + cc + "\" onclick='moduleClick(" + JSON.stringify(data[i].children[j]) + ")' plain=\"true\" class=\"easyui-linkbutton\" style=\"border-color:#ddd;border-width:1px;border-style:solid;margin:10px 0 10px 0;background-color:rgba(245,245,245,1);color:black;width:22%;height:30px;margin-left:3%\">" + data[i].children[j].text + "</button></br>";
} else {
indexStr += "<button id=\"" + data[i].children[j].id + "\" iconCls=\"icon-" + cc + "\" plain=\"true\" onclick='moduleClick(" + JSON.stringify(data[i].children[j]) + ")' class=\"easyui-linkbutton\" style=\"border-color:#ddd;border-width:1px;border-style:solid;margin:10px 0 10px 0;background-color:rgba(245,245,245,1);color:black;width:22%;height:30px;margin-left:3%\">" + data[i].children[j].text + "</button>";
}
3.登录验证的时候,实现回车提交。
代码如下:
$(document).keyup(function (event) {
if (event.keyCode == 13) {
page.submit();
}
});
https://www.cnblogs.com/shipengzhi/articles/2035010.html
上面链接为event.keyCode用法及列表。
4.easyui-checkbox选取不到选中状态
用js获取easyui格式的checkbox,$("#PasswordGeneration").is(":checked");不管用。
下面这种方法可以获取easyui格式的复选框选中状态(现获取组件属性,在获取是否选中):
$("#PasswordGeneration").checkbox("options").checked;
下面可以参考官方文档:(http://www.92ui.net/)
5.滚动条滚动到指定位置。
场景:(根据左面手风琴点击的标签,滚动条自动到达右边相应的模块高度)
具体代码实现:
$('#accordion-menu').accordion({
onSelect: function (title, index) {
var pp = $('#tabs').tabs('getSelected');
var tab = pp.panel('options').title;
if (tab == "首页") {
//由于首页内的内容拼接字符串填充,每次点击$("#DcManagement").offset().top都会改变
//$("#xx").animate({ scrollTop: $("#DcManagement").offset().top 360 }, 500);
if (title == "铸造车间") {
$("#xx").animate({ scrollTop: 360 }, 500);
} else if (title == "铝加工车间") {
$("#xx").animate({ scrollTop: 900 }, 500);
} else if (title == "带轮车间") {
$("#xx").animate({ scrollTop: 1700 }, 500);
} else if (title == "组装车间") {
$("#xx").animate({ scrollTop: 2450 }, 500);
} else if (title == "ECVT组装车间") {
$("#xx").animate({ scrollTop: 3100 }, 500);
} else if (title == "齿轮车间") {
$("#xx").animate({ scrollTop: 3650 }, 500);
} else if (title == "物流管理车间") {
$("#xx").animate({ scrollTop: 4450 }, 500);
} else if (title == "嵌合实绩") {
$("#xx").animate({ scrollTop: 4600 }, 500);
} else if (title == "制造管理科" | title == "权限管理" | title == "系统管理") {
$("#xx").animate({ scrollTop: 4800 }, 500);
} else {
$("#xx").animate({ scrollTop: 0 });
}
}
}
});
*本来是想直接对应到id的高度,但每次高度都不准确,只好用固定的高度来设置。
完善:(后续找到了用父类的scrollTop - 要确定的位置的offset().top 来确定位置)
先将传过来的数据中的id和text封装到cookie中,,在根据点击的title即text找到对应的id,判断其相对高度(部分代码)
tes.ajax.get(urls.UserModules, null, function (result) {
if (result.Success) {
var data = result.Value;
$.each(data, function (index, item) {
//封装到cookie中
$.cookie(item.text, item.id);
var icon = item.attributes.icon;
if (icon) {
icon = "icon-" + icon.replace(".png", " ");
}
$('#accordion-menu').accordion('add', {
title: item.text,
iconCls: icon,
selected: false,
content: ' <ul id="tree-' + item.id + '"></ul>'
});
// 解析整个页面
//$.parser.parse();
// 第二层生成树节点
if (!item.children || item.children.length == 0) {
return true;
}
$("#tree-" + item.id).tree({
data: item.children,
onClick: moduleClick
});
});
$('#accordion-menu').accordion({
onSelect: function (title, index) {
var pp = $('#tabs').tabs('getSelected');
var tab = pp.panel('options').title;
if (tab == "首页") {
var xxTop = $('#xx').scrollTop();
var cid = $("#" + $.cookie(title)).offset().top;
if (xxTop == 0) {
$("#xx").animate({ scrollTop: cid - 100 }, 500);
} else {
$("#xx").animate({ scrollTop: xxTop + cid -100 }, 500);
}
}
}
});