ajax更新后Jquery砌体格式更改

时间:2011-05-04 13:37:16

标签: javascript jquery html css ajax

我正在使用masonary jquery插件来格式化通过ajax加载到我页面的图像。

除了通过ajax加载图像之外,它们都完美地工作,它们似乎从不知名的地方获得额外的边距/填充值,并且不像页面上已有的图像那样无缝地适应。我尝试添加margin:0; padding:0;但似乎没有任何效果

我的所有代码目前都在这里: http://1hype.me/

非常感谢任何想法!

修改

我测试过的所有内容都出现了问题,Safari,Chrome& FF(mac)

这是一个屏幕截图,可以解释一下:http://cl.ly/0d0q37290W1r0j0X2g0c

1 个答案:

答案 0 :(得分:2)

这是由于空白。

你可以从ajax调用返回图像(没有任何脚本

然后运行

function fetch() {
    //autoupdater
    $.ajax({
        type: "POST",
        url: "ajax/fetch_image.php",
        cache: false,
        data: "after=000000",
        success: function(results){ 
            var imgHolder = $('#image_holder');
            /* prepend the results 
             results is just the image (without whitespace around it) */
            imgHolder.prepend(results);
            /* fade in the first image (the one we just prepended)*/
            imgHolder.find('img:first').fadeIn(1100);
            /* do the masonry thing.. */
            imgHolder.masonry({ singleMode: true });
        }
    });
}

如果这不是一个选项(改变fetch_image.php ),那么你可以使用

function fetch() {
    //autoupdater
    $.ajax({
        type: "POST",
        url: "ajax/fetch_image.php",
        cache: false,
        data: "after=000000",
        success: function(results){ 
            var imgHolder = $('#image_holder');
            /* exclude text whitespace nodes (not included in a tag).*/
                        var $results = $(results).filter(function(){return this.nodeType != 3});
            imgHolder.prepend( $results.eq(0) );
            $('body').append( $results.eq(1) );
        }
    });
}