1

我正在使用 ajax 函数来读取一些内容。我也想在这个内容中暗示延迟加载

我的代码

 $(document).ready(function () {
   var getparam = '<?php echo $this->paramData;?>';
   $.ajax({
     type: "POST",
     url: "/Index/" + getparam
   }).done(function (data) {
     console.log(data);
     $('#append_here').html(data);
     var check = 0;
     var int = 0;
     var int = setInterval("doThis(check)", 10);

     function doThis(check) {
       var images = $('img:hidden').length;
       if(check >= images) {
         clearInterval(int);
       }
       $('img:hidden').eq(0).fadeIn(10);
       check++;
     }
   });
 });

内容完美。之后出现一个错误,doThis 未定义

如果有人知道这一点,请帮助我。

4

2 回答 2

1

将 doThis() 放在全局范围内,而不是在 $(document).ready() 或内部函数/回调中。

简单地说:- 将其移至本节末尾下方$(document).ready( ...)

这种错误并不少见,现在使用 jQuery,我们在 $(document).ready() 回调中编写了很多 Javascript。

于 2013-05-11T09:02:16.270 回答
0
setInterval("doThis(check)", 10);

doThis从全局范围调用,因为它是通过类似 eval 的方式调用的 - 并且doThis不在全局范围内。

试试这个:

var int = setInterval(function(){
   var images = $('img:hidden').length;
   if(check >= images) clearInterval(int);
   $('img:hidden').eq(0).fadeIn(10);
   check++;
}, 10);
于 2013-05-11T08:57:01.670 回答