【发布时间】:2013-04-29 18:14:48
【问题描述】:
我有一个带有航点无限滚动插件的页面加载内容。
在 AJAX 调用成功并添加 DOM 元素后,将运行回调以重新初始化 javascript 功能,如轮播、按钮和其他动画。
在第一次 AJAX 调用中,负责切换的按钮可以正常工作。在下一次 AJAX 调用中,新的 DOM 项工作,但之前的按钮现在在单击时执行两次切换。在第三次调用中,原始项目现在运行 3 次,第二个项目运行两次,新项目运行一次,依此类推,第四次,在调用 AJAX 内容时继续复合。
如何隔离回调不影响之前加载的内容,或者,有没有办法给JS设置一个全局状态,这样就不用每次都需要回调了?
一些伪代码:
$('.infinite-container').waypoint('infinite', {
onAfterPageLoad: function() {
//Carousel options
$('.carousel-container').carousel({
options: here,
....
});
//Button Toggles
$('.button').click(function(){
var self = $(this);
$(this).siblings('.caption').animate({
height: 'toggle'
}, 200, function() {
// Callback after animate() completes.
if(self.text() == 'Hide Details'){
self.text('Show Details');
} else {
self.text('Hide Details');
}
});
});
}
});
编辑:谢谢大家。所有的答案都让我找到了不同但合适的解决方案。选择的内容是所有建议问题的精彩集合,值得一读。
【问题讨论】:
标签: javascript jquery ajax infinite-scroll jquery-waypoints