0

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

<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>

当我在具有数百个元素的列表上执行 removeAll 时会出现问题。在这种情况下,我宁愿开硬切。你知道我是否可以在slideUp函数中访问列表的长度,或者是否可以有条件地绑定动画?

谢谢

4

1 回答 1

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();
        }
    }
}
于 2013-06-17T13:12:27.457 回答