【发布时间】:2012-12-23 12:39:34
【问题描述】:
我正在尝试通过 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 并且没有同位素。通过inspect可以看出,这和我原来的问题一样,就是原来的项目有同位素,而新的附加项目没有。
希望我说清楚了,希望有人能够帮助我并证明我的理智。谢谢。
更新 3
解决方案(部分)是像这样用 $() 吞噬新拇指
var $newthumbs = $("..new items..");
但是我仍然有这个问题..
在这个jsfiddle 上,我已经添加了解决方案,并且每次都添加了 2 个 div。
在这个broken fiddle 上,我添加了类似于渲染助手在Rails 上的作用的div,其中添加了\n \t 等等。这似乎不起作用。
我正在想办法让它工作..
【问题讨论】:
标签: jquery ajax ruby-on-rails-3 jquery-isotope ujs