我很难找到答案。必须有一个安置在某处的答案,但我还没有找到它。
简而言之,我使用Infinite Scroll将元素附加到Wordpress循环中。但是我没有在这个循环中使用Isotope或Masonry插件,这就是我被错误的答案埋葬的地方。
在我的标题脚本之外调用Infinite Scroll,我有一大堆其他函数正在加载(window).load(function(){...
,根据我的理解,附加的元素应该属于范围。
不幸的是他们没有。
我的问题是,即使在添加了新的Ajax元素之后,也不应该(window).load
执行每个适用的元素吗?
可根据要求提供代码,但我希望这是一个简单的语法答案......
答案 0 :(得分:1)
您的问题的答案是:不,$(window).load()
在附加元素时不会触发,但仅在window
对象的onload
事件触发时触发,即在初始完成时触发页面加载。
事件委托的建议是有根据的,并且在实例化无限卷轴时传递回调的建议更是如此。假设您正在使用this jQuery infinite scroll plugin,您可能会执行以下操作:
$(window).load(function() {
// [...]
$('#infinite-scroll-element')
.infinitescroll({ /* options */ },
// callback to handle binding events on newly added elements
function(newElements) {
// iterate across the elements just added
for (var i = 0; i < newElements.length; i++) {
var thisElement = newElements[i];
// bind your event handlers here, e.g.:
$(thisElement).click(function(evt) { /* ... */ });
$(thisElement).mouseover(function(evt) { /* ... */ });
};
});
// [...]
};
其他插件可能会提供一些类似的功能。
答案 1 :(得分:0)
最新版本的http://www.infinite-scroll.com/以及砌体:http://masonry.desandro.com/以下代码适用于我:
$grid.on( 'append.infiniteScroll', function( event, response, path, items ) {
$(this).next(".info").slideToggle("fast");
// OR your code you want to load after infinite scroll loads
});