【发布时间】:2014-07-25 04:20:09
【问题描述】:
我正在尝试使动态加载的表使用 tablesorter 并同时启用 editable 和 stickyHeaders 小部件。
我已经很接近工作了。不过有一件很奇怪的事情。如果我点击一个可编辑的单元格然后按 Tab 键,下一个单元格会被激活,但只有一瞬间然后失去焦点。
在 Chrome 中,光标会消失。
在 Safari 中,在第二个单元格失去焦点后,您可以看到光标跳到表格标题行的最右侧,它所在的位置一直闪烁,直到您单击其他位置。 这是 Firefox 中显示光标的图片
以下是 editable 小部件的精简版演示,可按预期工作:
Editable working version
这里是 editable 小部件的精简版演示,还添加了 stickyheaders,它可以将标签分到下一个单元格功能:
Editable + Stickyheaders not working
唯一的区别是添加了Stickyheaders
编辑:
好的,问题似乎是从jquery.tablesorter.widgets.js的第885行开始的这段代码
searching: function(table, filter, skipFirst) {
var wo = table.config.widgetOptions;
clearTimeout(wo.searchTimer);
if (typeof filter === 'undefined' || filter === true) {
// delay filtering
wo.searchTimer = setTimeout(function() {
ts.filter.checkFilters(table, filter, skipFirst );
}, wo.filter_liveSearch ? wo.filter_searchDelay : 10);
} else {
// skip delay
ts.filter.checkFilters(table, filter, skipFirst);
}
},
如果我将其注释如下,则恢复选项卡功能:
searching: function(table, filter, skipFirst) {
/*var wo = table.config.widgetOptions;
clearTimeout(wo.searchTimer);
if (typeof filter === 'undefined' || filter === true) {
// delay filtering
wo.searchTimer = setTimeout(function() {
ts.filter.checkFilters(table, filter, skipFirst );
}, wo.filter_liveSearch ? wo.filter_searchDelay : 10);
} else {
// skip delay
ts.filter.checkFilters(table, filter, skipFirst);
}*/
},
当您使用表顶部的输入搜索值时,上述代码块似乎隐藏了所有不匹配的内容。注释掉它会修复标签功能,但会破坏过滤功能。
有什么想法可以修改这段代码以使正常选项卡到下一个单元格再次工作而不会破坏过滤器?
【问题讨论】:
标签: jquery tablesorter