我正在加载facebook likebox onscroll。但每次我向上/向下滚动ajax都会被解雇。我希望ajax只开一次。这是我的代码:
jQuery(document).ready(function() {
jQuery(window).scroll(function() {
var scroll = jQuery(window).scrollTop();
if (scroll <= 770) {
jQuery.get('ajax/facebook.html', function(data) { jQuery('.fblikeajax').html(data);});
}
});
});
答案 0 :(得分:4)
使用JQuery的on()
和off()
$(document).on("scroll", scrollcheck);
var scrollcheck = function () {
var scroll = jQuery(window).scrollTop();
if (scroll <= 770) {
jQuery.get('ajax/facebook.html', function (data) {
jQuery('.fblikeajax').html(data);
});
$(document).off("scroll", scrollcheck);
}
}
答案 1 :(得分:1)
您可以添加一个变量来检查ajax是否已被触发:
jQuery(document).ready(function() {
var ajax_fired = false;
jQuery(window).scroll(function() {
var scroll = jQuery(window).scrollTop();
if ((scroll <= 770) && !ajax_fired) {
ajax_fired = true;
jQuery.get('ajax/facebook.html', function(data) {
jQuery('.fblikeajax').html(data);
});
}
});
});
答案 2 :(得分:0)
在事件监听器触发后取消绑定:
jQuery(document).ready(function() {
var scrollHandler = function() {
var scroll = jQuery(window).scrollTop();
if (scroll <= 770) {
jQuery.get('ajax/facebook.html', function(data) { jQuery('.fblikeajax').html(data);});
}
$(window).unbind('scroll', scrollHandler);
}
jQuery(window).scroll(scrollHandler);
});
我没有测试过那段代码,但它应该非常接近。