将Jquery.load()与javascript内容一起使用
我试图抓取用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
.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”)。砌体要求您在添加或删除元素时告诉它,以便它可以相应地使用自己。有两种方法可以做到这一点:
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
});
你能告诉我是怎么做的吗,因为我试着把砖石加入到我的函数中,但那没有任何作用。。。