首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在附加项目时,同位素不reLayout

在附加项目时,同位素不reLayout
EN

Stack Overflow用户
提问于 2012-12-23 12:39:34
回答 3查看 11.3K关注 0票数 5

我试图通过ajax请求在Rails上向容器添加新的项目(下面提供了解释的小提琴)

我写的js回复是

代码语言:javascript
复制
var $newthumbs = "..new items..";
$('#homepage_thumbnails').append( $newthumbs );
$('#homepage_thumbnails').isotope( 'appended', $newthumbs );

我似乎有什么问题,一旦新的项目被附加..一旦这些项目是附录,同位素似乎不会着火,我留下的项目,最初是同位素和新的项目,而不是同位素。

这是我所拥有的一个例子(我得到了几个同位素项目,然后直接在几个新的未同位素项目之后)。

代码语言:javascript
复制
<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 );也会发生这种情况。

这里发生什么事情?

更新

同位素似乎被卡住了..。因为如果我把警告(‘测试’)之后,它不会被解雇。如果我在同位素呼叫之前发出警报,警报就会被发射.啊救命

更新2

我做了一个显示问题的小提琴。这很简单,但我认为问题也很简单--我只是错过了一些重要的事情。

篡改解释及其与我原来的问题:的关系

小提琴上有两类-- itemred-item.一个简单的布局3个项目的透明背景(以更好地显示问题)。一旦clickme被点击,一个new-item应该通过附加加入到这个组中,然后用同位素重新组合。结果显示,red-item低于第一个item,没有同位素。通过检查可以看出,这和我原来的问题是一样的,就是原来的项目是同位素的,而新的附加的项目却没有。

希望我说得很清楚,希望有人能帮助我,证明我是理智的。谢谢。

更新3

解决方案(部分)是用$()吞没新闻,如下所示

代码语言:javascript
复制
var $newthumbs = $("..new items..");

不过,我还是对此有意见。

在这个小提琴上,我添加了解决方案,所以每次都添加2 div。

在这个折断的小提琴上,我在Rails上添加了divs,它添加了\n \t等等。这似乎不管用。

我在努力想办法让它运转起来。

EN

回答 3

Stack Overflow用户

发布于 2013-09-25 15:47:40

我有同样的问题,你和我用你的小提琴找到解决办法。我认为问题是,在你附加新的项目后,你需要给同位素一个参考这些插入的项目。

http://jsfiddle.net/cR7WP/

当你说:

element.append( '<div />' ).isotope( 'appended', $('<div />') )

创建了两个独立的div元素;一个元素实际上是附加的,另一个元素是片段,同位素试图布局。附加的div从未传递给布局函数。

票数 8
EN

Stack Overflow用户

发布于 2018-04-15 14:02:03

我知道这条线是旧的,但这是我的解决办法。同位素似乎不能立即渲染容器:

代码语言:javascript
复制
var item = $(e);
setTimeout(function() {
  CSP.grid.append(item).isotope('appended', item);
}, 50); // fixes an overlay bug
票数 4
EN

Stack Overflow用户

发布于 2012-12-23 13:20:24

这对我来说很管用

代码语言:javascript
复制
$container = $('#browsecontainer');

$isotope = $container.isotope({
    getSortData: {
      },
      alphabetical: function( $elem ) {
        var name = $elem.find('.name'),
            itemText = name.length ? name : $elem;
        return itemText.text();
      }
    }
  });  


    //// to append items
    var isotopeData = $container.data('isotope');
    for(var item in items)
    {
            $newItem = $(items[item]);
            $container.append( $newItem ).isotope( 'appended', $newItem );
    }

/中继

代码语言:javascript
复制
  $container.isotope( options ,function(){

        //u can remove some items if u want
  });

项目是一堆div。

这里我添加了多个项,所以我把它作为循环,$container是对象的引用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14011015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档