提问人:Yoeri Achterbergen 提问时间:8/29/2018 更新时间:8/29/2018 访问量:824
删除事件侦听器 AJAX
remove event listener ajax
问:
使用jQuery,我创建了一个带有GET方法的ajax调用。如果用户滚动到底部,则会触发此请求。如果 ajax 调用正在运行,我想删除滚动侦听器。如果 ajax 调用成功,请添加 scroll 函数。我尝试过使用unbind,但这不起作用。
有人可以帮助我吗?
window.onscroll = function(ev) {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
$(window).unbind('scroll');
//ajax call
$.ajax({
type: "GET",
url: "result.php",
data: {
'offset': flag,
'limit':12
},
success: function(data){
$('.gallery').append(data);
flag += 12;
}
});
}
};
答:
0赞
Luca Kiebel
8/29/2018
#1
将 eventListener 中执行的函数命名为 function,并使用 / 删除侦听器:.on()
.off()
$(window).on("scroll", windowScroll);
function windowScroll(ev) {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
$(window).off('scroll', windowScroll); // remove the listener on scroll
//ajax call
$.ajax({
type: "GET",
url: "result.php",
data: {
'offset': flag,
'limit': 12
},
success: function(data) {
$('.gallery').append(data);
flag += 12;
$(window).on("scroll", windowScroll); // re-attach it when the request is finished
}
});
}
};
上一个:上传图片 PHP SQL
评论
$(window).off('scroll');
.on()
window.onscroll = null;