我使用的是JQuery 1.6和我能找到的最新的表排序程序(可排序的)。我有一个页面,它做一个
$("div#child_container").load(child_url);
其中由"child_url“引用的页面中有一个可排序的。
在FireFox 8中,这完全符合您的期望。我在div中嵌入了一个可排序的表。
在FireFox 3.5中,它不起作用。不能单击列标题。它们是纯文本。斑马造型也没有发生,也不是最初的类型。运行FireBug显示它加载了child_url (它加载了数据表,因此这一点得到了确认),并加载了sorttable.js文件。没有错误。任何警告都与CSS相关。
我可以在FireFox 3.5上加载child_url,它将完全按照您的预期工作,所以这本身看起来不是一个表排序问题。使用JQuery .load()来包含一个使用tablesorter页面似乎是一个问题。
我对如何继续下去的建议持开放态度。而不是简单地说“对不起,你的浏览器太旧了,而且坏了。”
编辑:我已经切换到jquery.tablesorter.js。同样的问题。
编辑:我修改了我的child_url页面,使其不提供文档类型、头部等。它只提供了<table>和一个<script>块,该块将在其上调用$("#tablediv").tablesorter( ... )。我将.js文件加载提升到了父页面。同样,在3.5和8.0上,这种行为也是错误的。我在.tablesorter()调用中遇到了一个javascript错误,这是我以前从未遇到过的。
发布于 2011-12-23 04:34:02
首先,如果有什么方法可以信任Alfabravo,我会这么做的。虽然他的评论没有完全解决问题,但它让我走上了正确的道路。
我剥离了child_url页面,使其只提供了一个<table>。我将jquery.tablesorter.js拉到了父页面。我需要父页面来执行表上的.tablesorter()。
$("div#pending").load(
"pending.jsp",
function() {
$("table#pending_records").tablesorter( {
sortList: [[4, 0]],
widgets: ["zebra"]
} );
}
);JQuery.load()允许您指定要加载的URL,以及在完全加载时要执行的回调。这就是克服我第二次编辑中提到的Javascript错误所需的秘诀。
另外,我实际上使用jquery.ui.tabs.js在两个不同的选项卡中加载了两个可排序的表。第二个标签也不起作用。这是因为如果它在一个display: none块中,sorttable就不能工作。当页面加载时:
.sorttable()没有执行,所以它没有正确地呈现我能够使用JQuery.load()文档页面上提到的黑客来解决这个问题。基本上,调整样式表,而不是:
.ui-tabs .ui-tabs-hide { display: none; }它有:
.ui-tabs .ui-tabs-hide { position: absolute; left: -10000px; }由于包含内容的框架正在“显示”(尽管不在屏幕上),.sorttable()的工作方式与您预期的一样。
https://stackoverflow.com/questions/8583599
复制相似问题