我是Backbone视图的上下文,我在DOM中添加和删除视图。但是,包含Isotope元素的容器仅在初始加载期间起作用;之后,当移除容器并再次添加时,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结构看起来与第一个类似。
任何人都知道会发生什么,以及如何让Isotope在第一次初始化期间读取新元素?
答案 0 :(得分:8)
前段时间我偶然发现了同样的问题,如果你想在操作之间保留Isotope的动画,我会以这种方式解决它:
在您的删除功能中,而不是$container.html('');
写:
var elToRemove = $container.data('isotope').$filteredAtoms;
$container.isotope('remove',elToRemove);
在您的创建功能中,而不是$container.html(list);
:
$container.isotope('insert',$(list));
否则,如果您不需要在操作之间进行动画,则可以保持您的功能不变,只需在调用shuffle之前重新初始化Isotope。