我正在使用jQuery tablesorter插件从csv文件动态生成表,并且该部分工作正常.但是,每当我尝试通过单击表头来对表进行排序时,firebug会在控制台中报告此问题:
parsers is undefined
return parsers[i].type;\n
Run Code Online (Sandbox Code Playgroud)
最初我虽然这个问题是由于文件加载后表没有准备好引起的,所以我通过在从csv文件呈现我的表后手动调用tablesorter()来解决这个问题.但这并没有解决问题.
此外,在表的最后,表格被绘制为乱码,末尾有一些灰色区域.我想这与上面的错误有关.
有问题的代码是这样的:
<html>
<head>
<link rel="stylesheet" href="blue/style.css" type="text/css" />
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>
<script type="text/javascript" src="jquery.csv.js"></script>
<script type="text/javascript" id="js">
function sortThis() {
$("#myTable").tablesorter({
// sortList:[[0,0],[2,1]]
});
};
</script>
<title>huh!?</title>
</head>
<body>
<table id="myTable" class="tablesorter" cellspacing="1" cellpadding="0" border="0">
<thead>
<tr>
<th>name</th>
<th>type</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<script type="text/javascript">
$.get('myfile.csv', function(data) {
myfile = jQuery.csv()(data)
for (var x = 0; x < myfile.length; x++) {
str = "<tr>";
for (var y = 0; y < myfile[x].length; y++) {
str += "<td>" + myfile[x][y] + "</td>";
}
str += "</tr>";
$('#myTable').append(str);
}
});
sortThis();
</script>
</tbody>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
Jos*_*lfe 12
我遇到了类似的问题,但错误被抛出,因为表是空的(除了标题).我认为你出于同样的原因得到错误.
我相信问题是tableorter不知道表数据,因为你在使用$ .get()方法加载页面后修改它.要在表数据中发生更改,请在调用sortThis()之前使用此调用.
$('#myTable').trigger("update");
Run Code Online (Sandbox Code Playgroud)
那应该可以解决你的问题.
作为tablesorter调用的一部分,您还可以使用以下语法来避免此错误:
$('#myTable:has(tbody tr)').tablesorter({
...
});
Run Code Online (Sandbox Code Playgroud)
我找到了jQuery Google Group发布的帮助.
| 归档时间: |
|
| 查看次数: |
13316 次 |
| 最近记录: |