JUERY UI ACCORDION动态添加MENU

http://jqueryui.com/demos/accordion/里面的例子,下图红框所示的内容都是在html页面上写死的,如果想动态显示menu的内容该怎么办呢,下面就简单介绍下:

首先就是下在jueryui,这里就不介绍了。

思路:

页面加载完成后,通过ajax向后台获取第一层的menu的数据,并将其显示在页面上,同时为每一个menu绑定一个onclick事件,然后触发accordion事件;这样第一层menu实现,与在页面写死menu实现的效果一样。然后在点击第一层menu的时候,会触发刚才绑定click事件,通过传递参数获得该menu的子menu。

 

代码:

js代码:

<script>

$(function() {

$.ajax({
url:"
http://localhost:8080/process/Category",
dataType:"xml",
success:function(data){
$(data).find("Category").each(function(index){
var p_name = $(this).children("name").text();
$("#accordion").append("<h3><a href='#' onclick=ck('"+p_name+"')>"+p_name+"</a></h3><div id='"+p_name+"'></div>");
});
$( "#accordion" ).accordion({
autoHeight: false,
navigation: true
});
}
});
});
function ck(p_name){
$.ajax({
url:"
http://localhost:8080/process/Process",
dataType:"xml",
data:p_name,
success:function(data){
$(data).find("ProcessDefinitionUUID").each(function(index){
var name = $(this).children("value").text();
$("#"+p_name).append("<ul><li><a >"+name+"</a></li></ul>");
});
}
});
}

</script>

<body>
<div id="accordion">

</div>
</body>

上面代码的红色部分原来是放在ajax的上面的,这样的效果如下图所示:

这与实际需求不一致。

所以将其放在ajax的success中去了,这样在加载完后台数据成功后,会触发jqueryui accordion。

实现效果如下图所示:

ok,完工。

博客地址:jiangli.easymorse.com

你可能感兴趣的:(JqueryUI)