问题描述
- 关于easyUI 左侧菜单栏的问题
-
$(function() { $.ajax({ async : false, url : getRootPath() + '/getPower.action', type : 'post', dataType : 'JSON', success : function(data) { addNav(data); } }); // 导航菜单绑定初始化 $("#menu").accordion({ // 初始化accordion title : '导航菜单', fit : true, border : true, animate : true }); }); function addNav(data) { $('#menu').accordion(); $.each(data, function(i, m) { var menulist = ''; var mid = m.id; menulist += '<ul>'; menulist += '<div id = "tree' + mid + '" ></div>'; menulist += '</ul>'; console.info(menulist); $('#menu').accordion('add', { title : m.text, content : "<ul id='tree"+mid+"' ></ul>", iconCls : 'icon ' + 'icon-sys', selected : true, collapsible : true }); $.parser.parse(); addTree(mid, m.children); }); } function addTree(mid, menus) { $("#tree"+ mid).tree( { data : menus, type : 'json', animate : true, onSelect : function(node) { node.state == 'closed' ? $(this) .tree('expand', node.target) : $(this).tree( 'collapse', node.target); }, onClick : function(node) { if ($('#' + mid).tree('isLeaf', node.target)) { addTab(node.text, node.url, node.icon); } } }); }
这样写有什么问题吗,为什么加载出来第一级的菜单有,但是往下的tree就出不来了,试了半天找不出原因,请各位前辈帮我看看
解决方案
你的代码中有
menulist += '<div id = "tree' + mid + '" ></div>';
又有
content : "<ul id='tree"+mid+"' ></ul>",
一个页面里面会出现id相同的元素,会导致冲突。是不是写错了?因为你下面的点击事件中代码里面取的节点id是$('#' + mid),但是在之前的代码里面并没有创建'#' + mid这样id的节点。
还有一个问题是
menulist += '<ul>';
menulist += '<div id = "tree' + mid + '" ></div>';
menulist += '</ul>';
在ul标签里面对用的是li元素,你使用的是div,不符合规范。
解决方案二:
HaxeUI菜单栏在安卓下的问题
时间: 2024-11-01 20:17:45