0

几年前我创建了一个 php+smarty 应用程序,我在其中使用了 jqGrid。

这些是版本号:jQuery 1.2.6, jqGrid 3.2.3

那时它工作得很好。

几天前我检查它不起作用。更奇怪的是,它在 ie8 上运行,在 firefox 和 chrome 浏览器上失败。

我通过firefox中的firebug控制台检查我收到以下错误:

TypeError: jQuery(...).jqGrid is not a function

我无法理解为什么突然出现这个错误?

我已包含以下文件:

<link rel="stylesheet" type="text/css" media="screen" href="jqgrid/themes/style.css" />
     <link rel="stylesheet" type="text/css" media="screen" href="jqgrid/themes/basic/grid.css" />
    <script src="jqgrid/js/jquery.js" type="text/javascript"></script>
    <script src="jqgrid/js/jquery.jqGrid.js" type="text/javascript"></script>
    <script src="jqgrid/js/myjqGrid.js" type="text/javascript"></script>

jqGrid代码:

jQuery(document).ready(function(){
jQuery("#superadmin").jqGrid({  // Specify the ID of the Grid Table
    url:'jqgrid/superadminusers.php', // URL of PHP file
    datatype: "json", // Name of datatype
    colNames:['User Id','First Name','Last Name', 'Role', 'Contact','Edit','Delete','Status'], // Column Name in grid
    colModel:[ // Field name used in database
        {name:'username',index:'username', width:100},
        {name:'firstname',index:'firstname', width:120},
        {name:'lastname',index:'lastname', width:100},
        {name:'role',index:'role', width:100},
        {name:'phone',index:'phone', width:80},
        {name:'editrow',index:'editrow', width:50},
        {name:'deleterow',index:'deleterow', width:50},
        {name:'deletebook',index:'deletebook', width:100}
    ],
    pager: jQuery('#divPage'), // ID of Grid DIV
    rowNum:10, // Total no of rows that we want to show in grid at a time
    mtype: "POST", // method type
    height: 200, // height of grid
    width: 850, // width of grid
    multiselect: false, // set true the multiselect property
    rowList:[10,15,20], // set the number of list of rows
    imgpath: 'jqgrid/themes/sand/images', // path of images
    sortname: 'username', // column name by which grid will be sorted by default
    viewrecords: true,  // it will show the number of records below the grid
    sortorder: "asc",
  caption:'Users'
    });
});

我无法将其更新到最新的 jqGrid 版本,因为我必须手动更改所有文件中的代码。我使用的主题在 jquery ui 主题中也不可用。

4

1 回答 1

2

您写道,您的旧 Web 应用程序“仍然可以在 IE8 上运行,但在 Firefox 和 Chrome 浏览器上失败”。

我想它可以在 IE 上运行,因为您仍然像以前一样使用旧的 IE8,但是您像以前一样将 Firefox 和 Chrome 更新到了更新的版本。您使用的是 5 年前发布的 jQuery 1.2.6,您使用的是 2008 年夏季发布的 jqGrid 3.2.3。您应该了解,如果您想在新的现代 Web 浏览器中使用它,您必须更新您的 Web 应用程序.

如果我们谈论 2008 年,您应该记得,那是Firefox 3刚刚发布的时候。Internet Explorer 8 于 2009 年发布。Chrome 网络浏览器的首次发布甚至是在 2008 年底。现在我们有 Firefox 21 和 Chrome 27。你真的想知道你的复古应用程序仍然可以在这些现代网络浏览器中运行吗?

关于您的代码:我对 jqGrid 的第一次体验是使用 3.5.2 版。所以我不确定 jqGrid 3.2.3 是如何工作的。至少 jqGrid 3.5.2 已经有了本地化文件。所以一个必须在grid.locale-en.js 之前 jquery.jqGrid.min.js插入。也许你也应该在 jqGrid 3.2.3 中做同样的事情?

于 2013-06-13T10:16:54.917 回答