事情是这样的:文件a.php
包含 jQuery Tablesorter 表。这是表格排序器代码:
$("#feedsTable thead").live("click", function() {
$("#feedsTable").tablesorter({
widthFixed : true,
dateFormat : "uk",
}).tablesorterPager({
container : $("#pager"),
positionFixed : false
});
});
稍微剥离了表格 HTML 代码:
<div id="tablica">
<article class="module width_full">
<div id="pager">
<form>
[snip]tablesort pager stuff...
</form>
</div>
<table id="feedsTable" class="tablesorter" cellspacing="0">
<thead>
<tr>
[snip]table header row...
</tr>
</thead>
<tbody> ... PHP printed table data
此外,文件a.php
包含refresh
链接,单击该链接时,会调用b.php
包含以下代码的文件:($("#tablica").load("a.php #tablica");
基本上,使用新元素打印表格,然后使用该函数b.php
将旧表格替换为新表格)。load
当然,我必须使用 jQuerylive
或者delegate
(这个有一些问题,只是不能让 Tablesorter 工作,所以我live
改用)函数,而不是(document).ready
因为一旦load
执行代码,Tablesorter 将无法使用新的表数据。
但问题是当我使用jQuerylive()
函数时,我需要点击两次才能使用Tablesorter插件。就像第一次点击只“激活”插件,然后,当第二次点击表格标题时,表格被排序并且效果很好。
中a.php
,我可以添加此代码
$(document).ready(function() {
$("#feedsTable thead").click();
});
它将“激活”插件,第一个用户单击表头将对表进行排序。但是,如果我添加$("#feedsTable thead").click();
到b.php
文件并单击refresh
链接,则此“hack”不起作用,并且需要再次单击两次才能在加载新数据的表后使用 Tablesorter 插件。
基本上,问题是:我希望 Tablesorter 在使用 jQuery 时在第一次单击时工作live
,而不仅仅是在第二次单击时工作。如何解决?
任何帮助将非常感激!
谢谢。