我正在尝试通过 Rails 上的 ajax 请求将新项目附加到容器(下面提供了带有解释的jsfiddle )
我写的 js 回复是
var $newthumbs = "..new items..";
$('#homepage_thumbnails').append( $newthumbs );
$('#homepage_thumbnails').isotope( 'appended', $newthumbs );
一旦添加了新项目,我似乎遇到了某种问题。一旦添加了这些项目,同位素似乎不会触发,我只剩下最初同位素的项目和未同位素的新项目。
这是我所拥有的一个例子(我得到了几个同位素项目,然后直接在几个新的非同位素项目之后)
<div id="homepage_thumbnails" class="thumbnails isotope" style="position: relative; overflow: hidden; height: 720px;">
<div class="thumbnail-item isotope-item" style="position: absolute; left: 0px; top: 0px; -webkit-transform: translate3d(0px, 480px, 0px);">
...
</div>
<div class="thumbnail-item thumbnail span2">
...
</div>
</div>
$('#homepage_thumbnails').isotope( 'insert', $newthumbs );
请注意,这也会发生
这里发生了什么?
更新
同位素似乎以某种方式卡住了..因为如果我在它后面加上 alert('test') ,它就不会被解雇。如果我在同位素调用之前发出警报,警报就会被触发......啊啊帮助
更新 2
我制作了一个显示问题的jsfiddle 。这很简单,但我认为问题也很简单——我只是错过了一些重要的事情。
jsfiddle 解释以及它与我原来的问题的关系:
在 jsfiddle 上有 2 类 -item
和red-item
. 具有透明背景的 3 个项目的简单布局(以更好地显示问题)。clickme
单击后,应通过附加加入组,然后new-item
用同位素重新组合。所见的结果red-item
是低于第一个item
并且没有同位素。通过检查可以看出它与我原来的问题相同,即原来的项目得到同位素,而新的附加项目没有。
希望我说清楚了,希望有人能够帮助我并证明我的理智。谢谢你。
更新 3
解决方案(部分)是像这样用 $() 吞噬 newthumbs
var $newthumbs = $("..new items..");
但是我仍然有这个问题..
在这个jsfiddle上,我添加了解决方案,并且每次添加 2 个 div。
在这个破碎的小提琴上,我添加了类似于渲染助手在 Rails 上的操作方式的 div,其中添加了 \n \t 等等。这似乎不起作用。
我试图弄清楚如何使它工作..