敲除条件动画取决于父列表长度

时间:2013-06-17 13:04:13

标签: knockout.js

我在使用带有淘汰赛的动画时遇到了性能问题。 这是我的代码:

<ul data-bind="template: {foreach: items, beforeRemove: slideup }">
  <li data-bind="text: text"></li>
</ul>
<script>
  var slideup = function (elem) {
     if (elem.nodeType === 1) $(elem).slideUp(100, function () {$(this).remove();});
  }
</script>

当我在包含数百个元素的列表中删除所有问题时,会出现问题。在这种情况下,我宁愿开火。 你知道我是否可以访问slideUp函数中列表的长度,或者是否可以有条件地绑定动画?

由于

1 个答案:

答案 0 :(得分:0)

这应该有效:

var slideup = function (elem) {
    var context = ko.contextFor(elem);
    if (elem.nodeType === 1) {
        if (context.$parent.length < 100) {
            $(elem).slideUp(100, function () {$(this).remove();});
        }
        else {
            $(elem).remove();
        }
    }
}