2

我正在为他们的商店橱窗制作房地产非交互式展示

我已经让jCarousel做我想做的事:

  • 每个 AJAX 添加面板
  • 在当前集合的末尾,去和 AJAX 一些新面板并插入它们

这很好用,但似乎remove()在先前的元素上调用 jQuery 会导致丑陋的颠簸。我不确定调用hide()是否会释放任何资源,因为该元素仍然存在(并且该元素无论如何都会在屏幕外)。

我见过这个carousel.reset(),并在回调中尝试过。它只是清除了所有元素。

这将在 Windows XP 上的 Google Chrome 上运行,并且仅在液晶电视上显示。

我想知道,如果我找不到一个合理的解决方案来删除额外的 DOM 元素,它会让我的应用程序陷入困境,还是 Chrome 会做一些聪明的垃圾收集?

或者,你将如何解决这个问题?

谢谢

4

2 回答 2

1

您可以重复使用旧元素而不是删除它们并添加新元素吗?

于 2010-06-16T09:13:29.900 回答
1

我制定了一个最终非常简单的修复程序!

只需将其传递给 jCarousel 的配置

itemFirstOutCallback: {
               onAfterAnimation: function(carousel, li, index, state) {
                 if (state === 'init') return;

                 carousel.remove(index); 

               }
            }

基本上,这只是在列表元素变得不可见时立即删除它(overflow: hidden如果你愿意的话,滚动到负区域:))

于 2010-06-17T00:27:54.777 回答