我有一个jquery函数,当用户每次滚动到下面时,它会加载更多帖子
这是jQuery代码
$(function() {
var $timeline = $('#tupdate'),
$spinner = $('#loading').hide();
function loadMore() {
$(window).unbind('scroll.posts');
$spinner.show();
$.ajax({
url: "/ajax/loadmore?lastPost=" + $(".pointer:last").attr('id'),
success: function(html) {
if (html) {
$timeline.append(html);
$spinner.hide();
} else {
$spinner.hide();
bootbox.alert('No more post available');
}
$(window).bind('scroll.posts', scrollEvent);
}
});
}
//lastAddedLiveFunc();
$(window).bind('scroll.posts', scrollEvent);
function scrollEvent() {
var wintop = $(window).scrollTop(),
docheight = $(document).height(),
winheight = $(window).height();
var scrolltrigger = 0.95;
if ((wintop / (docheight - winheight)) > scrolltrigger) loadMore();
}
});
现在的问题是,每当每次显示用户向下滚动弹出窗口时,都会激怒用户,我该如何只发出一次警报?
这是我尝试过的
if (!g) {
var g = 1;
bootbox.alert('No more Post');
}
但是每次我向下撞时它仍然保持警惕
您是g
在范围内声明。为了showAlert
便于阅读,我将其重命名为。
// Declare outside of `loadMore()`.
var showAlert = true; // True by default.
function loadMore(){
$(window).unbind('scroll.posts');
$spinner.show();
$.ajax({
url: "/ajax/loadmore?lastPost="+ $(".pointer:last").attr('id'),
success: function(html){
if(html){
$timeline.append(html);
$spinner.hide();
}else{
$spinner.hide();
if (showAlert)
{
bootbox.alert('No more post available');
showAlert = false; // don't show no more.
}
}
$(window).bind('scroll.posts',scrollEvent);
}
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句