首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在砌体上添加元素

在砌体上添加元素
EN

Stack Overflow用户
提问于 2013-12-07 19:12:53
回答 2查看 2.9K关注 0票数 2

关于这个问题,我看过各种各样的问题,但似乎没有一个能解决我的问题。

当页面第一次加载时,我开始对前十幅图像进行砖石处理,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('img').load(function(){
    var masonry = $('#gallery').masonry({
        itemSelector: '.item',
});
});

接下来,当用户滚动到页面底部时,我调用ajax:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if ($(window).scrollTop() >= $(document).height() - $(window).height() + 5) {
            request_pending = true;
            $('#loading').show();
            $.ajax({
                url: '/timeline/getPhotosAPI',
                type: 'POST',
                data: { id:'<?=$id?>', offset: offset },
                success: function(html){
                    if(html.length > 0){
                        var response = JSON.parse(html);
                        $.each(response, function(i, item){
                            $('#gallery').append(item);
                            var $html = $(item);
                            $('#gallery').find('.item').masonry('appended', $html, true);
                        });
                        $('#loading').hide();
                        offset = parseInt(offset) + 10;
                        request_pending = false;
                    }else{
                        alert('fail');
                    }
                }
            });
        }

其中的响应是来自我的php的html DOMS的JSON字符串,类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array( 0 => '<div class="items"><img src="xyz" /></div>" );

上面的代码成功地将我的图像附加到了我的#gallery容器中,但是砖石不会读取我的".item“类并将相应的位置附加到我新添加的项中。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-08 02:00:35

看起来砖石不适用于html字符串。

这是我的代码,起作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    var offset = 10;
    var request_pending = false;
    var container = document.querySelector('#gallery');
    var msnry = new Masonry(container, {
        itemSelector: '.item',
    });

    $(document).ready(function(){
            $(window).scroll(function () { 
            if (request_pending) {
                return;
            }
            if ($(window).scrollTop() >= $(document).height() - $(window).height() + 5) {
                request_pending = true;
                $('#loading').show();
                $.ajax({
                    url: '/timeline/getPhotosAPI',
                    type: 'POST',
                    data: { id:'<?=$id?>', offset: offset },
                    success: function(pictures){
                        if(pictures.length > 0){
                            var response = JSON.parse(pictures);
                            var elems = [];
                            var fragment = document.createDocumentFragment();

                            $.each(response, function(i, item){
                                var img = document.createElement("img");
                                $(img).attr("src", item['photo_file']);
                                var div = document.createElement("div");
                                $(div).addClass("item");
                                $(div).append(img);
                                fragment.appendChild( div );
                                elems.push( div );
                            });
                            // append elements to container
                            container.appendChild( fragment );
                            // add and lay out newly appended elements
                            $('#gallery').imagesLoaded( function(){
                                msnry.appended( elems );
                            });
                            $('#loading').hide();
                            offset = parseInt(offset) + 10;
                            request_pending = false;
                        }else{
                            alert('fail');
                        }
                    }
                });
            }
        });
    });
</script>

因此,我的php返回图像源的JSON字符串,而不是HTML字符串。砌体只接受DOM元素。

注意:这里使用imageLoaded.js来防止图像堆叠。没有它,砖石工就不能正常工作。

票数 1
EN

Stack Overflow用户

发布于 2013-12-07 19:29:07

看起来,在砖石文档中,它们将项附加到容器中,然后通知砖石工,它们被追加了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var container = document.querySelector('#container');
var msnry = new Masonry( container );
container.appendChild( elem );
msnry.appended( elem );
msnry.layout();

请参阅砌体:方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$.each(response, function(i, item){
    $('#gallery').append(item);
    msnry.appedned(item);
});

创建msnry变量时,需要将其设置为全局变量,或者至少是更高级别的变量。

在添加了所有内容之后,我相信您需要调用msnry.layout();来“激活”新项目。

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

https://stackoverflow.com/questions/20449463

复制
相关文章
链表----在链表中添加元素详解
1.2对于链表来说,若想访问链表中每个节点则需要把链表的头存起来,假如链表的头节点为head,指向链表中第一个节点,如图:
wfaceboss
2019/04/08
2.7K0
链表----在链表中添加元素详解
在excel图表上添加数据标签
在Excel2013中,选中柱子右键---添加数据标签-----添加数据标签(B),如下图:
演化计算与人工智能
2020/08/14
2K0
在excel图表上添加数据标签
在Ubuntu 20.04上添加swap交换空间
很多认为swap是物理RAM内存已满时才使用swap。 这是一个错误的认知,因为内核会将非活动页面将从内存移动到交换空间swap。
小锋学长生活大爆炸
2022/09/08
3.9K0
在Ubuntu 20.04上添加swap交换空间
在 Ubuntu 上如何添加 Apt 软件源
当使用 Ubuntu 软件中心或者从终端命令行输入apt或者apt-get安装软件包时,软件包被从一个或者多个软件源下载下来。一个 APT 软件源是一个网络服务器或者一个本地目录,它包含 deb 软件包和可以被 APT 工具读取的元文件。
雪梦科技
2020/05/09
23.3K0
在 Ubuntu 上如何添加 Apt 软件源
jQuery - 添加元素
jQuery append() 方法在被选元素的结尾插入内容(仍然在该元素的内部)。
陈不成i
2021/07/22
2.6K0
在元素上写事件和addEventListener()的区别[通俗易懂]
语法: element.addEventListener( type , listener , useCapture ) – – 添加事件监听 – – type: 事件类型字符串,不使用“on”前缀 – – callback:事件处理程序(回调函数) – – useCapture:可选参数,是否使用事件捕获的方式处理事件。不传递时,默认为false,表示不使用事件捕获(使用事件冒泡),如果需要显示事件捕获,则显示传递true。
全栈程序员站长
2022/09/18
1.2K0
javascript动态添加元素
<!doctype html> <html lang=”en”> <head> <meta charset=”UTF-8″> <meta name=”Generator” content=”EditPlus®”> <meta name=”Author” content=””> <meta name=”Keywords” content=””> <meta name=”Description” content=””> <title>Document</title> </head> <body> <script> function addLiElement() { var liElement = document.createElement(‘li’); //liElement.innerHTML = ‘这是新增的li元素’; var labelElement = document.createElement(‘label’); var inputElement = document.createElement(‘input’); labelElement.innerHTML = ‘单号:’ inputElement.setAttribute(‘name’, ‘expressNumber’); liElement.appendChild(labelElement); liElement.appendChild(inputElement); var ulElement = document.getElementById(‘myid’); ulElement.appendChild(liElement); } </script> <ul id=”myid”> <li>aa</li> <li>bb</li> </ul> <p> <button onClick=”addLiElement();”>动态添加标签</button> </p> </body> </html>
全栈程序员站长
2022/06/25
1.9K0
javascript 如何添加元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152086.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/25
1K0
原生js添加元素
今天做页面使用的mui,因为使用mui情况下无法使用jquery,于是在ajax请求完毕添加元素的时候发现自己竟然对原生js添加元素的方法有点模糊了,真是越活越倒退了,赶紧整理一波。
全栈程序员站长
2022/06/25
8.9K0
html页面添加元素
Title table,td,th{ border: 1px solid slateblue ; } div{ vertical-align: center; text-align: center; } $(function (){ var $delete=function (){ var $parent = $(this).parent().parent();
await
2021/09/23
6.4K0
js 动态添加元素
该例子的样式用的是easyui的样式,看不懂只需把class="easyui-XXX" 删除即可 <div class="fitem" id="urls" style="margin-bottom:5px;"> <label>url:</label> <input id="url" name="url" class="easyui-textbox" style="width: 260px" > 小标题: <input id="url_title" name="url_titl
黄啊码
2020/05/29
19.7K0
js 动态添加元素
vue 数组添加元素
3、splice() 方法向/从数组指定位置添加/删除项目,然后返回被删除的项目。
wust小吴
2019/11/05
5.4K0
js添加元素方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152064.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/25
8.5K0
C语言编程: 在BMP图片上添加图片水印
gcc 版本 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)
DS小龙哥
2022/01/07
4.6K0
C语言编程: 在BMP图片上添加图片水印
js操作DOM在父元素中的结尾添加子节点注意
所以js是不能直接传入字符串的,但是jquery的append可以直接传入html字符串。
蓓蕾心晴
2018/10/25
9.9K0
js操作DOM在父元素中的结尾添加子节点注意
原生js动态添加元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152106.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/25
6.8K0
封装数组之添加元素
在上一小节中,我们对数组进行了一个基本的封装,该小节中,我们在上一次基础上,新增往数组添加元素的方法:
wfaceboss
2019/04/08
1.1K0
Python 列表如何添加元素
添加前: 'my', 'name', 'is', 'mark', 'age', 18
用户8418197
2022/02/13
1.8K0
点击加载更多

相似问题

在Tumblr上的砌体中添加{meta:标记}

21

在动态添加砌体元素后如何更新路径点位置

20

不良砌体元素:[对象对象]

16

为jQuery砌体中的元素添加底部边距

10

jQuery:“加载更多”砌体元素?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文