将Jquery.load()与javascript内容一起使用

将Jquery.load()与javascript内容一起使用,javascript,jquery,ajax,load,Javascript,Jquery,Ajax,Load,我试图抓取用Javascript组织的项目,并将它们放在我页面的内容上。我遇到的问题是,当我使用.load()时,它不会捕获任何javascript,因此我捕获的图像不在正确的组织中 下面是我用来抓取内容的函数: function loader(url) { $.get(url, function(data) { $('#posts').fadeOut('normal',function(){$('#posts').html(data);}); $('#p

我试图抓取用Javascript组织的项目,并将它们放在我页面的内容上。我遇到的问题是,当我使用
.load()
时,它不会捕获任何javascript,因此我捕获的图像不在正确的组织中

下面是我用来抓取内容的函数:

function loader(url) {
    $.get(url, function(data) {
        $('#posts').fadeOut('normal',function(){$('#posts').html(data);});
        $('#posts').fadeIn('normal');
    }).error(function(url) {
        alert('error');
    });
};
经过研究,似乎为了获得javascript,我需要使用Ajax

事情是这样的:

我的页面上有完全相同的javascript代码,这是另一个未被应用的页面的javascript代码。是否有一种方法可以将此javascript应用于使用
.load()
加载的项目


jQuery负责不同项目的布局。但在页面加载时,您只调用一次砌体函数。要解决您的问题,您只需在加载新项后再次调用Mashise,因此在函数“loader”中的AJAX调用中,编写一些与您之前所做的类似的内容:

$wall.masonry({
   itemSelector: '#entry, #entry_photo',
   isAnimated: false
});

您还可以改进代码,例如使用$wall变量而不是$(“#posts”)。

砌体要求您在添加或删除元素时告诉它,以便它可以相应地使用自己。有两种方法可以做到这一点:

  • 销毁$wall的砖石结构,替换$wall的HTML,在$wall上构建砖石结构
  • 使用圬工销毁$wall的子项,使用圬工向$wall添加新的子项-
  • 在第一个示例之后,我做了一些更改

    id=“entry”
    的所有实例更改为
    class=“entry”
    ,并将
    #entry
    的所有实例更改为
    .entry
    。一个ID一次只能由一个元素使用,而一个类正是为了这个目的而存在的

    过滤返回的HTML以仅包含#posts的子项。我们不想包括

    $newPosts = $(data).filter(function(){
        return this.id === 'posts';
    }).children();
    
    销毁砌体,更新HTML,重新加载砌体

    $wall.masonry('destroy');
    $('#posts').html($newPosts);
    $wall.masonry({
        itemSelector: '.entry, .entry_photo',
        isAnimated : false
    });
    

    你能告诉我是怎么做的吗,因为我试着把砖石加入到我的函数中,但那没有任何作用。。。