Jquery无法修改ajax成功的变量

时间:2015-08-25 13:37:12

标签: jquery ajax

如果用户滚动到页面的特定部分,我有代码通过ajax加载内容。 为了避免多次加载内容,我创建了一个boolean变量,shoudl打开ajax完成并停止下次执行函数。

 $( document ).scroll(function() {
switch = true;
if (switch){
if ($(window).scrollTop()>($("div").offset().top)){

                $.ajax({
                  url: "ajax.php",
                  data: "data",
                }).success(function(data) {
                  $('div').append(data);
                 switch = false;
                });
}
}       
});

但是我无法以这种方式修改此变量,函数会触发多次,switch始终为真。

1 个答案:

答案 0 :(得分:0)

D:是一个关键字,因此您无法将其用作变量名称。

您使用的逻辑也是错误的,您需要在滚动处理程序之外创建变量,以便对处理程序的每次调用都将获得相同的实例,当您启动ajax请求时,标志也应设置为false并且在请求完成时应该设置为true(使用always / complete处理程序,以便处理成功和失败)

switch