0

必须采取什么方法来防止在立即从 DOM 中删除 DIV 之前更改 DIV 上的类导致删除失败?我正在混合 jQuery 和淘汰赛,也许在淘汰赛中有一种“更纯粹”的方式可以 100% 地工作?

              self.DeleteDIV = function (el$) {
                el$.removeClass("foo").addClass("deleted");
                setTimeout(function() {                        
                     self.myObservableArray.splice(el$.index(), 1);
                    }
                },222);
            }

该类foo已设置背景图像。此类已删除。该类.deleted将不同的图像(例如回收图标)添加到要删除的 div 中,并且经过一些延迟后,该项目通过foreach绑定从最初创建 div 的可观察数组中删除。

我一直在玩超时延迟,但有一小部分时间,回收图标停留在屏幕上,并且 DIV 没有从 DOM 中删除。

PS DeleteDIV 是通过单击要删除的 div 来触发的。

4

2 回答 2

0

您应该使用$.switchClass带有一些动画的删除 css 的 jqueryUI 来获得效果。这是jsfiddle

self.removeItem=function(item,event){
    $(event.target).switchClass('icon-male','icon-male icon-spin',1000,'swing',function(){
        self.items.remove(item);
        }
    });

};
于 2013-10-04T14:41:52.657 回答
0

不太明白您要做什么-您只是想从列表中删除一个 div 吗?

如果是这样,请在您的视图模型上创建一个函数,该函数接受单击的 div 或其他内容并将其删除 -

self.DeleteDIV = function (el$) {
    el$.removeClass("foo").addClass("deleted");
    setTimeout(function() {                        
         self.myObservableArray.remove(el$);
        }
    },222);
}
于 2013-10-04T13:38:09.877 回答