jQuery tablesorter插件 - 执行表后AFTER表排序
问题描述:
我有一个表使用tablesorter插件成功排序。但是,我想突出显示特定行中特定文本字段中的文本。它有一个唯一的ID,但是当我将我的代码放在排序代码后面时,它不起作用。这里是我的代码:jQuery tablesorter插件 - 执行表后AFTER表排序
jQuery(document).ready(function() {
jQuery("#filetable").tablesorter({
sortList: [[3,1]],
widgets: ['zebra'],
testExtraction: "complex"
});
//my new code which doesn't work as expected
if(jQuery("#new_foldername").length > 0){
jQuery("#new_foldername").focus(function() { jQuery(this).select(); });
}
});
如果我坚持警报刚刚在检查后,看是否#new_foldername存在,我看到了警报,我看到在背景中高亮显示文本(所以我的代码来突出显示文本作品)。当我点击关闭警报时,表格完成排序......并且文本不再被突出显示。
任何想法可能发生什么?
答
看起来排序是异步发生的。该文档提供了一个名为'sortEnd'的钩子,您可能希望运行突出显示的代码。见例如,从 http://tablesorter.com/docs/example-triggers.html
$(document).ready(function() {
// call the tablesorter plugin, the magic happens in the markup
$("table").tablesorter();
//assign the sortStart event
$("table").bind("sortStart",function() {
$("#overlay").show();
}).bind("sortEnd",function() {
$("#overlay").hide();
});
});
答
感谢罗伯特,
不幸的是,当你点击一个列标题排序sortEnd只运行。它不会在初始排序工作...
相反,我创建了一个新的小部件,像这样:
jQuery.tablesorter.addWidget({
id: "highlightNewFolder",
// format is called when the on init and when a sorting has finished
format: function(table) {
if(jQuery("#new_foldername").length > 0){
jQuery("#new_foldername").focus();
}
}
});
这就是现在的工作。不幸的是,我不得不放弃所有文本的选择/突出显示。出于某种原因,在代码中它有“选择()”,甚至没有聚焦的工作:
jQuery("#new_foldername").focus(function() { jQuery(this).select(); });
如果任何人有如何聚焦并突出显示所有文本的任何想法,那么这将是非常感谢!
答
可以使用initialized
callback function(或绑定到tablesorter-initialized
event)(source)注:Mottie's fork of tablesorter那些只是工作,而不是原来的(V2.0.5)。
Thanks dude。哇,这是前一阵子我发布了!我已经开始使用Datatables了,所以无法测试你的建议,但这听起来似乎是合理的!! – WastedSpace 2015-11-19 10:16:50