【问题标题】:Utilizing jquery.tablesorter with a jquery.tmpl generated table将 jquery.tablesorter 与 jquery.tmpl 生成的表一起使用
【发布时间】:2011-08-01 17:00:38
【问题描述】:

我有一个从 KnockoutJS observableArray viewModel 使用 jquery.tmpl 动态生成的表。在初始绑定之后,我还将 tablesorter 应用于 table id 以进行排序。

正如我“预期”的那样,每当一个项目被移除(或添加到)viewModel 时,表格就会更新,但在更新之后,tablesorter 将不起作用,除非我再次调用 $("#id").tablesorter();

这里有使用 jQuery.tablesorter 和 KnockoutJS 的最佳实践吗?有没有更好的插件可以在这里使用?显然我正在做的工作,但我想知道我是否遗漏了一些更有效的简单方法。

【问题讨论】:

    标签: jquery tablesorter knockout.js


    【解决方案1】:

    您可以调用 $("#id").trigger("update"),而不是每次调用 $("#id").tablesorter() >.

    这似乎是让 tablesorter 知道有基于docs 的新数据需要考虑的首选方式。

    如果您想更有趣一点,您可以为您的表创建一个自定义绑定,该绑定在您的 observableArray 更改时随时调用。

    看起来像这样:

    ko.bindingHandlers.triggerUpdate = {
        update: function (element, valueAccessor) {
            ko.utils.unwrapObservable(valueAccessor()); //need to just access the observable to create the subscription
            $(element).trigger("update");
        }
    }
    

    然后,你可以把它放在你的桌子上:

    <table id="mytable" data-bind="triggerUpdate: items">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 2013-08-13
      • 2020-11-12
      • 1970-01-01
      相关资源
      最近更新 更多