未捕获的参考错误:未定义功能

时间:2013-05-11 08:52:11

标签: javascript jquery lazy-loading

我正在使用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++;
     }
   });
 });

内容完美无缺。之后会出现一个错误,这不是defind

如果有人知道这件事,请帮助我。

2 个答案:

答案 0 :(得分:1)

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

简单地说: - 将其移至$(document).ready( ...)部分的末尾。

这种错误并不完全不常见,现在使用jQuery我们在$(document).ready()回调中编写了大量的Javascript。

答案 1 :(得分: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);