easyui的accordion为动态生成,accordion的onSelect方法中又动态生成tree,为什么要第二次选择accordion,tree才生成出来

立志尚早 发布于 2013/08/08 11:39
阅读 20K+
收藏 1

云原生2.0展望丨从“小众”到“首选”,推动云原生产业落地华为云作用几何?>>>

$(document).ready(function() {
		$.ajax({  
			type: 'POST',
			dataType: "json",
			url:'menu/getAll',
			success: function(data){
				$.each(data,function(i,n){
					$('#menu').accordion('add',{
						title: n.menu_name,
						selected: false,
						content:'<div style="padding:10px"><ul name="'+n.menu_name+'"></ul></div>',
					});
				});
			}
		}); 
		
		$('#menu').accordion({
			onSelect: function(title,index){
				$("ul[name='"+title+"']").tree({
					url: 'menu/getModules?menuName='+title,
				});
				alert(title);
			}
		});		
	});
以上是js写法
<body id="cc" class="easyui-layout">
  <div data-options="region:'north'" style="height: 100px"></div>
  <div data-options="region:'west',title:'导航菜单'" style="width: 200px;">
   <div id="menu" class="easyui-accordion">
   </div>
  </div>
  <div data-options="region:'center'">
   
  </div>
 </body>
返回的json数据都没有错
 
加载中
0
立志尚早
立志尚早

还是靠自己!!!更换写法

<body id="cc" class="easyui-layout">
		<div data-options="region:'north'" style="height: 100px"></div>
		<div data-options="region:'west',title:'导航菜单'" style="width: 200px;">
			<div id="menu" class="easyui-accordion" data-options="fit:true,">
				<c:forEach items="${menus}" var="menu">
				<div style="padding-top: 10px;" title="${menu.menu_name}">
					<ul id="tree${menu.menu_id}" class="easyui-tree">
						<c:forEach items="${modules}" var="module">
							<c:if test="${menu.menu_id==module.menu.menu_id}">
								<li>
									<span>${module.module_name}</span>
								</li>
							</c:if>
						</c:forEach>
					</ul>
				</div>
				</c:forEach>
			</div>
		</div>
		<div data-options="region:'center'">

		</div>
	</body>

 

 

0
立志尚早
立志尚早

顶啊,大神在哪里?

0
平安北京
大神在此
立志尚早
立志尚早
回复 @冷泉 : 你觉得没问题,可实际跑起来就这样,是不是写法的问题?
平安北京
回复 @Jialy : 这不应该吧
立志尚早
立志尚早
原因呢
0
crossmix
crossmix
LA ES el maˊs
0
crossmix
crossmix
a látere Na sábado laárense è vaca calaña 
0
crossmix
crossmix
au revoir mosquée 
0
crossmix
crossmix
comme vous va tête 
立志尚早
立志尚早
你这是干嘛?
0
王超
王超

应该在 accordion中得到panel,然后在panel的onLoad方法中去加载tree

我是这样做的

$("#zmkzAccordion").accordion({
    onSelect:function(title,index){
    var panel = $("#zmkzAccordion").accordion('getPanel',index);
	panel.panel({
	    onLoad:function(){}

	});
}
});





0
返回顶部
顶部