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

$(document).ready() またはその内部関数/コールバック内ではなく、グローバル スコープに doThis() を配置します。

簡単に言うと:-$(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 に答える