PS:
1.需要用户有点Jquery核心插件的基础
2.所有讲解都不包含CSS样式,只说动态效果,样式根据自己实际情况修改
一.导入Jquery核心插件
二.导入与accordion菜单相关的UI插件(ui.core.js,ui.accordion.js),
或直接导入jquery-ui-1.7.2.custom.min.js(不建议,会导致页面加载时多出没必要的插件加载)
三.用html标签定义accordion菜单(分静态和动态):
1.静态菜单:
首先是最外层div,相当于是放accordion菜单的容器,
<div id="accordion">
</div>
然后是里面的每个accordion菜单项,其中每个项分为标题项和内容项,
<div id="accordion">
<div id="accordionTitle">title(这里放标题)</div>
<div id="accordionContent">content(这里放内容)</div>
</div>
这样就做成了只有一个菜单项的accordion菜单,若有多个菜单,重复即可,如:
<div id="accordion">
<div id="accordionTitle1">title(这里放标题)</div>
<div id="accordionContent1">
<p>内容1</p>
<p>内容2</p>
</div>
<div id="accordionTitle2">title(这里放标题)</div>
<div id="accordionContent2">
<p>内容1</p>
<p>内容2</p>
</div>
</div>
2.动态生成菜单
同样首先定义最外层div,相当于是放accordion菜单的容器,
<div id="accordion">
</div>
然后通过异步获取数据,并返回结果,达到动态生成效果,具体步骤如下:
①在script标签中定义异步调用的方法:
<script>
function getAccordionAsync()
{
$.ajax({
//提交的方法
type:"post",
//要去获取数据的页面,自己根据实际情况而定,可以是asp,jsp,httphandler(一般处理程序),servlet
url:"doAccordion.aspx",
//获取数据成功后将得到的数据作为id为accordion的div的内容
success:function(result)
{
$("#accordion").html(result);
}
});
}
</script>
②新建一个页面,用来生成accordion菜单的所有内容,这里以asp页面为例子:
在后台代码的load事件中添加如下类似代码:
protected void Page_Load(object sender, EventArgs e)
{
//这里以常用的菜单形式,即某用户有多个父菜单,每个父菜单下有多个子权限,且只有两级菜单举例
//获取当前用户
UserInfo LoginUser = Session["LoginUser"] as UserInfo;
//获取当前用户所有菜单
List<RoleRight> roleRights = RoleRightManager.GetRoleRightsByRoleId(LoginUser.Role.Id);
//要返回的内容
Literal lt = new Literal();
//遍历所有菜单
foreach (RoleRight roleRight in roleRights)
{
//获取父级菜单
if (roleRight.Node.ParentNodeId == 0)
{
string content = "";
//设置标题内容
string head = roleRight.Node.DisplayName;
//获取当前父菜单下的子菜单
foreach (RoleRight rr in roleRights)
{
if (rr.Node.ParentNodeId == roleRight.Node.Id)
{
//设置子菜单要显示的内容及点击时要跳转到的页面
content += "<div class='accrodionContent'><a target='mainFrame' href='" + rr.Node.NodeURL + "'>" + rr.Node.DisplayName + "</a></div>";
}
}
//每遍历出一个父菜单及其下所有子菜单,就追加到lt.Text上,形成一个字符串格式的内容
lt.Text += "<div class='accrodionHead'>" + head + "</div><div>" + content + "</div>";
}
}
//最后将拼接好的字符串返回,这里的返回的lt.Text就是上面getAccordionAsync方法中成功后得到的数据result
Response.Write(lt.Text);
四.生成accordion菜单后,在页面首次加载时调用accordion方法,使之能够滑动
有以下几种动态样式:
1.$("#accordion").accordion();默认样式
2.$("#accordion").accordion({
autoHeight: false
});
菜单项是否使用相同高度,false为自动适应内容高度,true为所有菜单高度相同,一般使用false
3.$("#accordion").accordion({
event: "mouseover"
});
鼠标移上时触发滑动效果
以上三个位常用的效果,其他还有一些可以参考demo里的方法
分享到:
相关推荐
在实例中,你可以创建一个包含多个标题的Accordion,并通过设置参数来控制其行为,如自动展开第一个面板、是否允许同时展开多个面板等。 2. DateBox(日期框) DateBox是输入日期的控件,它提供了日历选择功能。...
1.1.4 编写第一个简单的jQuery应用/3 1.1.5 jQuery程序的代码风格/5 1.2 jQuery的简单应用/7 1.2.1 jQuery访问DOM对象/7 1.2.2 jQuery控制DOM对象/7 1.2.3 jQuery控制页面CSS /9 1.3 本章小结/11 第2章 ...
《jQuery UI 1.9m5 开发包详解:JavaScript 助手的杰作》 jQuery UI 是一个基于 jQuery 库的开源项目,它提供了一系列丰富的用户界面组件和交互效果,使得网页开发者能够轻松地创建出功能强大且用户体验良好的应用...
**jQuery UI 8.22 知识点详解** jQuery UI 是一个强大的前端开发库,它基于 jQuery JavaScript 库,提供了丰富的用户界面组件和交互效果。版本 8.22 是该库的一个重要里程碑,为开发者带来了更多优化和增强的功能。...
**jQuery UI 知识点详解** jQuery UI 是一个基于 jQuery JavaScript 库的用户界面库,它提供了一系列可重用的组件、主题样式以及交互效果,用于构建美观且易用的Web应用程序界面。这个名为“JQuery-ui及插件.rar”...
- **如何整合第三方jQuery插件**: 确保插件与DWZ兼容,并按需引入。 - **Error loading XML document: dwz.frag.xml**: 确认XML文件路径正确且文件存在。 - **IIS不能用Ajax访问*.html后缀的页面**: 修改IIS配置,...
Bootstrap 框架详解 Bootstrap 是一款广泛使用的前端开发框架,由 Twitter 的开发者们创建,旨在简化网页设计和开发过程。这个"bootstrap-demo"压缩包很可能是包含了一个使用 Bootstrap 创建的示例项目,用于演示其...