我几年前创建了一个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主题中也没有。
答案 0 :(得分:2)
您写道,您的旧网络应用程序“仍可在IE8上运行,并且在Firefox和Chrome浏览器上失败”。
我认为它适用于IE,因为您仍然像以前一样使用旧版IE8 ,但将Firefox和Chrome 更新为更新版本。您使用jQuery 1.2.6,它在5年前发布了更多,您使用的是jqGrid 3.2.3,它也是在2008年夏天发布的。您应该明白,如果您需要,您必须更新您的Web应用程序将它用于新的现代网络浏览器。
如果我们谈论2008年你应该记住,当时Firefox 3刚刚发布。 Internet Explorer 8于2009年发布。最初发布的Chrome网络浏览器甚至在2008年底。现在我们有Firefox 21和Chrome 27.您真的想知道您的复古应用程序是否仍然适用于现代这些Web浏览器?
关于你的代码:我对jqGrid的第一次体验是版本3.5.2。所以我不确定jqGrid 3.2.3是如何工作的。至少jqGrid 3.5.2已经有本地化文件。因此,必须在 grid.locale-en.js
之前插入jquery.jqGrid.min.js
。你可能也应该在jqGrid 3.2.3中做同样的事情吗?