1

在 embed.ly 返回我的数据后,我一直在绞尽脑汁并尝试许多不同的方法让同位素运行。

$(function () {

    $.embedly.defaults.key = '0addb97cbe9c4522b1f52c128a15d48a';
    $('a.oembedj').embedly({
        display: function (data) {

            //   $(this).html(data.thumbnail_url);
            //$(this).html(function() {
            //var emph = data.thumbnail_url;
            // return '<img src=" ' + emph + '" />';
            //});
            $(this).html(function () {

                var emph = data.description;
                return '<p>" ' + emph + '"</p>';
            });
        }
    })

    $(function () {

        var $container = $('#container').isotope({
            itemSelector: '.news-item',
            columnWidth: 70
        });

        //  $('.news-item').click(function () {
        //    $(this).remove();
        //      $container.isotope();
        //    });

    })
});

我似乎无法让它工作。这是我的 jsfiddle 示例。让我知道你的想法-

http://jsfiddle.net/daveferrara1/7XusF/28/

4

1 回答 1

1

我的部分困难是我不知道嵌入或同位素,所以我真的不知道什么是成功。尽管如此,由于没有其他人有更好的主意,我已经这样做了:http: //jsfiddle.net/7XusF/35/

我意识到每张图像都会调用 display ,而您可能只想调用一次同位素。所以我已经显示构建元素(我以更惯用的方式完成了它),我在 img 上放置了一个加载触发器。

每次创建 img 时,waitFor 都会递增。每次加载完成时,它都会递减。我假设加载请求将比加载完成更快,因此您不会多次归零。Fiddle 在这方面的表现与预期一致。行为是你想要的吗?

display: function (data) {
    var emph = data.thumbnail_url;
    waitingFor += 1;
    $('<img>').attr('src', emph).on('load', function () {
        waitingFor -= 1;
        if (waitingFor === 0) {
            var $container = $('#container').isotope({
                itemSelector: '.news-item',
                columnWidth: 70
            });
            console.debug('Isotoping.');
        }
    }).appendTo($(this));
}
于 2013-08-14T20:47:41.090 回答