4

在 Backbone 视图的上下文中,我在 DOM 中添加和删除视图。但是,包含同位素元素的容器仅在初始加载期间有效;之后,当容器被移除并再次添加时,Isotope 没有按预期工作。

我在这里做了快速的 JSfiddle:http: //jsfiddle.net/mulderp/T8aSQ/6/ -->

当我添加同位素容器时:

var list = '<div data-foo="bar" id="container"><div class="item red"></div><div class="item blue"></div></div>';
$container.html(list);
$container.isotope('shuffle');

Isotope 不再运行,尽管 DOM 结构看起来与第一个相似。

任何人都知道会发生什么,以及如何让同位素在第一次初始化期间重新读取元素?

4

1 回答 1

8

前段时间我偶然发现了同样的问题,如果你想在操作之间保持同位素的动画,我会以这种方式解决它:

在您的删除功能而不是$container.html('');写:

var elToRemove = $container.data('isotope').$filteredAtoms;
$container.isotope('remove',elToRemove);

在您的 create 函数中,而不是$container.html(list);

$container.isotope('insert',$(list));

否则,如果您不需要操作之间的动画,您可以保持函数原样,并在调用 shuffle 之前在 create 函数中重新初始化 Isotope。

工作小提琴:http: //jsfiddle.net/T8aSQ/7/

于 2013-02-15T15:13:03.590 回答