我对Safari的无限滚动有问题。 他跑两次并复制。 这是我的代码:
$window.scroll(function(){
if (($document.height() - $window.height()) == $window.scrollTop()) {
$('#loading-more svg').show();
jQuery.post(
ajaxurl,
{
'action': 'load_more',
'offset': offset
},
function(response){
$('#loading-more svg').hide();
$('.load-more').append(response);
if (response) {
offset = offset + 4;
}
}
);
}
});
你有解决方案吗?
非常感谢你!
答案 0 :(得分:0)
试试这个
var scrolled = true;
$window.scroll(function(){
if ( scroll == true; ) {
scrolled = false;
if (($document.height() - $window.height()) == $window.scrollTop()) {
$('#loading-more svg').show();
jQuery.post(
ajaxurl,
{
'action': 'load_more',
'offset': offset
},
function(response){
$('#loading-more svg').hide();
$('.load-more').append(response);
if (response) {
offset = offset + 4;
scrolled = true;
}
}
);
}
}
});
答案 1 :(得分:0)
取消绑定特定的滚动事件,直到您的延迟操作完成,以防止累积更多的事件触发器,从而在您的情况下创建重复行为。
$window.scroll(myEventFn);
function myEventFn() {
if (($document.height() - $window.height()) == $window.scrollTop()) {
$window.unbind("unbind", myEventFn); //unbind specific event
$('#loading-more svg').show();
jQuery.post(
ajaxurl, {
'action': 'load_more',
'offset': offset
},
function(response) {
$('#loading-more svg').hide();
$window.scroll(myEventFn); //bind back the event
$('.load-more').append(response);
if (response) {
offset = offset + 4;
}
}
);
}
}