`
wh_xia_jun
  • 浏览: 16269 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JQuery第一弹:accordion菜单详解

阅读更多
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里的方法
分享到:
评论

相关推荐

    jqueryeasyui中文培训文档.pdf

    在实例中,你可以创建一个包含多个标题的Accordion,并通过设置参数来控制其行为,如自动展开第一个面板、是否允许同时展开多个面板等。 2. DateBox(日期框) DateBox是输入日期的控件,它提供了日历选择功能。...

    jQuery权威指南-源代码

    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.zip

    《jQuery UI 1.9m5 开发包详解:JavaScript 助手的杰作》 jQuery UI 是一个基于 jQuery 库的开源项目,它提供了一系列丰富的用户界面组件和交互效果,使得网页开发者能够轻松地创建出功能强大且用户体验良好的应用...

    Jquery_Ui8.22

    **jQuery UI 8.22 知识点详解** jQuery UI 是一个强大的前端开发库,它基于 jQuery JavaScript 库,提供了丰富的用户界面组件和交互效果。版本 8.22 是该库的一个重要里程碑,为开发者带来了更多优化和增强的功能。...

    JQuery-ui及插件.rar

    **jQuery UI 知识点详解** jQuery UI 是一个基于 jQuery JavaScript 库的用户界面库,它提供了一系列可重用的组件、主题样式以及交互效果,用于构建美观且易用的Web应用程序界面。这个名为“JQuery-ui及插件.rar”...

    DWZ使用帮助文档

    - **如何整合第三方jQuery插件**: 确保插件与DWZ兼容,并按需引入。 - **Error loading XML document: dwz.frag.xml**: 确认XML文件路径正确且文件存在。 - **IIS不能用Ajax访问*.html后缀的页面**: 修改IIS配置,...

    bootstrap-demo

    Bootstrap 框架详解 Bootstrap 是一款广泛使用的前端开发框架,由 Twitter 的开发者们创建,旨在简化网页设计和开发过程。这个"bootstrap-demo"压缩包很可能是包含了一个使用 Bootstrap 创建的示例项目,用于演示其...

Global site tag (gtag.js) - Google Analytics