当前位置: 首页 > 面试题库 >

包括页面上的jquery菜单和jqGrid

程正阳
2023-03-14
问题内容

我有一个导航菜单,需要将其包含在我的所有页面上。…通过jsp,我只包含了该菜单

<div id="header"><jsp:include page="../menu_v1.jsp"/></div>

但是问题是我的菜单包含<html><head></head><body></body></html>现在,当我想使用在新页面中定义的jqGrid时,<script></script>它不会显示…。因为它与我的头jquery脚本冲突…我尝试过的解决方案:

  1. 使用,iframe但这不会让我控制其他页面。
  2. 除了包含<jsp:include page=""/>我之外,我还可以在同一脚本下在每个页面上包含所有带有jQuery导航的组件…这可能根本不是一个好的解决方案,因为每当我需要在菜单中包含更多组件而不是我必须在每个页面上进行更改时…

如果有人有更好的解决方案…请让我知道....谢谢!

更新: 我的主菜单代码

<script type="text/javascript"> 
//<![CDATA[

var navMenu = function(){

    jQuery("ul.subnav").parent().append("<span></span>");

    jQuery("ul.topnav li span").hover(function() {

        jQuery(this).parent().find("ul.subnav").slideDown('fast').show();

        jQuery(this).parent().hover(function() {
        }, function(){  
            jQuery(this).parent().find("ul.subnav").slideUp('slow'); 
        });
        }).hover(function() { 
            jQuery(this).addClass("subhover"); 
        }, function(){  
            jQuery(this).removeClass("subhover"); 
    });

}
//]]>
</script>


    <div id="topbar">
         <div class="disclaimer"></div>
        <ul class="topnav">
            <li>
                <a href="#">Order Management</a>

                <ul class="subnav">
                    <li><a href="<%=request.getContextPath()%>/jsp/1.jsp">1</a></li>
                    <li><a href="<%=request.getContextPath() %>/jsp/2.jsp">2</a></li>

                </ul>
            </li>
            <li>
                <a href="#">3</a>
                <ul class="subnav">
                    <li><a href="<%=request.getContextPath()%>/3.jsp">3</a></li>
                </ul>
            </li>
            <li>
                <a href="#">4</a>
                <ul class="subnav">
                <li><a href="<%=request.getContextPath()%>/4.1.do">4.1</a></li>
                <li><a href="<%=request.getContextPath()%>/jsp/4.2.jsp">Add Spog</a></li>
                <li><a href="<%=request.getContextPath()%>/jsp/4.3.jsp">4.3</a></li>

                </ul>
            </li>


        </ul>
    </div>

使用菜单的另一页:

script type="text/javascript">
//<![CDATA[
  jQuery(document).ready(function(){
    navMenu();        
  jQuery("#test").jqGrid({
                    sortable:true,
                    url: '',
                    datatype:'json',
                 colNames:['col1','col2', 'col3'], 
                 colModel:[  {name:'col1',index:'col1', width:85, sorttype:"int", align:"center", key:true},
                             {name:'col2',index:'col2', width:40, sorttype:"int", align:"center"},
                             {name:'col3',index:'col3', width:100, align:"center"},
                              ],

               rowNum:10,
               rowList:[10,20,30],
               jsonReader : {repeatitems: false,
                    root: function(obj) {
                        return obj;
                    },
                    page: function (obj) { return 1; },
                    total: function (obj) { return 1; },
                    records: function (obj) { return obj.length; }
                },
               pager: '#pager',
               sortname: 'col1',
               sortorder: "desc",
               loadonce:true,
               viewrecords: true,
               multiselect: true,
               caption: "Test",
               height:230 
             }); 
          jQuery("#test").jqGrid('navGrid','#pager10',{view:true,add:false,edit:false,del:false, searchtext:'Filter'},{},{},{},{multipleSearch:true});
         jQuery("#test").jqGrid('hideCol', 'cb');


  }) ;        
//]]>
</script>
</head>
<body>
<div id="header"><jsp:include page="../menu_v1.jsp"/></div>

但是现在的问题是我的菜单和主jqGrid根本无法工作…


问题答案:

好吧,我已经解决了这个问题:

1)每当创建任何导航菜单时:(Bozho的建议)链接附加到该导航菜单的CSS文件。不要使用任何<html>,<head>,<title> and <body>标签。只需使用,(对于CSS)和(将包含导航菜单)即可。

2)在中使用<jsp:include page="../navMenu.jsp"/><div id="header"><jsp:include page="../navMenu.jsp"/></div> 并在CSS中进行必要的调整。

3)所有js文件使用不同的功能将其保存在一个文件中,例如:

var navBar = function(){}
  var otherScript = function(){}

因此,当您要使用这些文件时,只需使用:如果是jQuery:

jQuery(document).ready(function(){
                          navMenu();
                          otherScript();
                     });

这样就不会在服务器上浮动多个js文件。

如果有人有任何疑问或疑问,请告诉我。

谢谢!



 类似资料:
  • 菜单 GitBook使用一个SUMMARY.md文件来定义文档的菜单。 SUMMARY.md中[]内的内容是标题,()内是文档的路径,章节和子章节用四个空格或者tab键来分级。 简单示例 # 概述 ### 第一部分 * [第一部分](part1/README.md) * [Writing很牛](part1/README.md#writing) * [GitBook很牛](par

  • 问题内容: 向下滚动页面时,活动菜单项将更改。怎么做? 问题答案: 通过绑定到容器的滚动事件(通常是窗口)来完成。 快速示例:

  • 你好,我想在这个代码的帮助 函数register_my_custom_menu_page(){add_menu_page('custom menu title','custom menu','my-menu-slug2','manage_options','custompage','my_custom_menu_page',plugins_url('myplugin/images/icon.png

  • 我最近在Spring开始使用thymeleaf模板引擎。我想实现的是-如果我的控制器是这样的 我更喜欢把头部部分作为页眉片段,内容来自控制器,页脚来自页脚片段。 所以总的来说--我是如何做到这一点的: /fragment/header.html http://www.thymeleaf.org/doc/articles/layouts.html https://looksok.wordpress.

  • 目前正在用C#中的ITextSharp构建一个PDF。PDF由三个“部分”组成,一个封面,一个可以跨越多个页面的表格,以及一个最终页面。拥有该表的页面需要在第一页包含页眉,并在所有包含页眉的页面上包含页脚,但封面和最后一页不需要。 我使用XMLWorker构建页面,但这并不重要。构建页面的代码如下: 我遇到的麻烦是确定一种方法来防止页脚出现在结束页上。我正在重写OnEndPage以创建页脚。是否有

  • pre { white-space: pre-wrap; } 菜单(Menu)定义在一些 DIV 标记中,如下所示:     <div id="mm">         <div onclick="javascript:alert('new')">New</div>         <div>             <span>Open</span>             <div>