我有以下JQuery代码,当页面在底部滚动
时运行一个函数var start = 2;
var limit = 2;
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
console.log(start);
//f($(window).scrollTop() == $(document).height() - $(window).height()) {
get_ticket_updates(start, limit);
start = (start + 2);
}
});
我在控制台日志中添加了start
变量,每次添加2,但是当滚动到页面底部时,它会不断添加2并运行该功能而不会停止。
如果在页面再次滚动之前已经运行它,如何停止运行?
更新 - 添加了功能:
function get_ticket_updates(start, limit) {
$("#ticket_updates_loading").show();
var seq = '<?php echo $_GET["seq"]; ?>';
$.ajax({
type: "GET",
url: "/section/tickets/view-ticket?action=get_updates&seq=" + seq + "&start=" + start + "&limit=" + limit,
cache: false,
success: function(data) {
$("#ticket_updates_loading").hide();
$("#ticket_updates_area").append(data);
}
});
}
答案 0 :(得分:1)
尝试添加一个在特定滚动高度之外重置的标志,因此您知道是否应该运行该功能
var start = 2;
var limit = 2;
var hasRan = false;
$(window).scroll(function() {
console.log(hasRan +" : "+ start);
if($(window).scrollTop() + $(window).height() < $(document).height() - 100) {
// reset flag when no longer at bottom of page
hasRan = false;
} else {
if (hasRan == false) {
get_ticket_updates(start, limit);
start = (start + 2);
// function has ran, trigger flag
hasRan = true;
}
}
});
&#13;
.box {
height: 400vh;
}
&#13;
<div class='box'></div>
&#13;