【发布时间】:2011-12-18 08:54:18
【问题描述】:
我正在使用jQuery Lazy plugin 来延迟加载 JS 和 CSS 资源。我还使用TableSorter jQuery plugin 使表格可排序。现在这两个工作得很好,没有问题,当我简单地在 Lazy 插件中定义 Tablesorter 然后像这样使用 Tablesorter:
$('#table_id').tablesorter();
上面的工作按预期工作,Tablesorter 库按需加载,HTML 表格变为可排序的。但是,我需要像这样向 tablesorter 添加自定义解析器:
$.tablesorter.addParser({
id: 'my_parser',
is: function(s) {
return false;
},
format: function(s) {
var result = s.match(/([0-9]+)/);
if (result == null) return 0;
return parseInt(result[0]);
},
type: 'numeric'
});
上面的 addParser 代码的问题是,我收到“$.tablesorter 没有方法 'addParser'”的错误。如果 TableSorter 插件是否已经加载,它并没有什么区别。惰性插件用自己的函数覆盖 $.tablesorter 并且不允许这个调用之王 - 我想。
behaviour can be seen here in this jsFiddle 的示例。
谁能帮助我?我将非常感谢任何帮助或想法。提前谢谢你。
【问题讨论】:
-
查看lazy插件的源码,没有发现加载完成后会触发事件的提示。但这正是您在这里需要的,因为您确实希望将配置调用推迟到实际加载库。
-
@DidierG。这两个库看起来都比
jquery.lazy.js -
@DidierG。 - 我不需要回调函数,实际上,我什至不想要它。我对完美运行的 Lazy 插件非常满意——仅在实际使用时才加载 JS 和 CSS。 Yepnope 和 RequireJS 都将始终加载资源,无论它们是否实际在页面中使用。惰性插件很棒,但是当不使用选择器并且直接调用库时,它显然无法正常工作,例如 $.tablesorter.addParser(); ...
-
这些库不会总是加载资源。如果您考虑一下,这甚至没有意义:您真的不需要库来进行无条件加载。仔细看看 Yepnope,它非常小,完全可以满足您的需求。
标签: jquery lazy-loading tablesorter