急!!有checkbox的树遍历后浏览器很卡的问题,小女子求js大神帮帮忙

baidu_23182613 baidu_23182613 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


如图,点击父页面的所属栏目,弹出子页面的ztree,第一次在复选框中勾选相应栏目后,第二次在父页面的栏目select框中再次点击时要把上次选的栏目默认勾选中,每次选中点确定后覆盖上一次的内容。
功能已经实现,但是不知道哪里写得不够好,导致打开浏览器测试非常卡(ie),每次选多个栏目后下一次再点开就会卡死

子页面js代码:
$(function(){
var setting = {
check: {
enable: true,
isParent:true,
chkboxType : {"Y":"s","N":"s"}
},
view: {
dblClickExpand: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeClick: beforeClick,
onClick: onClick
}
};


$.fn.zTree.init($("#organName_treeDemo"), setting, ${nodeListJSON});

//确定时的点击事件,把子页面选中的id,name传到父页面
$("#btn").click(function() {
var goodsTypes = new Array();
var treeObj = $.fn.zTree.getZTreeObj("organName_treeDemo");
var checkedNodes = treeObj.getCheckedNodes();
for (var i = 0; i < checkedNodes.length; i++) {
var goodsType = new Object();
goodsType.code = checkedNodes[i].id;
//goodsType.name = checkedNodes[i].name;
var path = getFilePath(checkedNodes[i]);
goodsType.name = path;
goodsTypes[i] = goodsType;
}

window.parent.callback(goodsTypes);

// 关闭当前iframe
closeDialogInIframe();
});

//初始化时添加上次勾选的选项到树中
var treeObj = $.fn.zTree.getZTreeObj("organName_treeDemo");
window.parent.$('#cmsInfoNodeStr option').each(function(){
treeObj.checkNode(treeObj.getNodeByParam("id",$(this).val()),true,true);
});
});

function beforeClick(treeId, treeNode) {
return true;
}

function onClick(e, treeId, treeNode) {
var treeObj = treeId.split("_")[0];
var zTree = $.fn.zTree.getZTreeObj(treeId),
nodes = zTree.getSelectedNodes(),
v = "";
t = "";
nodes.sort(function compare(a,b){return a.id-b.id;});
for (var i=0, l=nodes.length; i<l; i++) {
v += "," + nodes[i].id;
t += "," + nodes[i].name;
}
if (v.length > 0 ) v = v.substring(1);
if (t.length > 0 ) t = t.substring(1);
var cityObj = $("#"+treeObj);
cityObj.attr("value", t);
$("#"+treeObj+"_Id").val(v);

onCmsNodeClick(v);
}

function getChildx(node){
return node.children;
}



父页面js:
//子页面到父页面的回调函数
function callback(goodsTypes){
$('#condition_infoItem').empty();
var vHtml = $("#condition_infoItem").html();
var infoItemStr = "" + $("#condition_infoItemStr").val();

// 所有选中的栏目对象
if (goodsTypes != null) {
for (i = 0; i < goodsTypes.length; i++) {
var code = goodsTypes[i].code;
var name = goodsTypes[i].name;
var option = "<option value='" + code + "'>" + name + "</option>";
vHtml += option;
}
}

$("#condition_infoItem").html(vHtml);
$("#condition_infoItemStr").val(infoItemStr);
}

function showInfoItem(){
var url="incNodeTree.do";
openDialogInIframe(url, '选择栏目', $(this).height()-100, 300, 1, "<%=ApplicationContextUtil.getThemePath(request)%>/images/loading.gif");

}

...全文
评论 4
收藏 已收藏
分享
返回顶部
baidu_23182613
JavaScript 87,983 成员 224,681 内容