2013-05-11 12 views
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++; 
    } 
    }); 
}); 

이 내용

내 코드에 게으른 로딩을 impliment하고 싶다. 그 후에 거기에 오류가 있습니다 dohis은 defind하지 않습니다

이 사람에 대해 알고 있으면이 나를 도와주세요.

답변

0
setInterval("doThis(check)", 10); 

이 평가 후면 같은 방식을 통해이라고 때문에 글로벌 범위에서 doThis를 호출 - 그리고 doThis는 전역 범위에 있지 않습니다.

대신을 시도해보십시오

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

넣어하는 DoThis()를 전역 범위에서, 그하지 안에 $ (문서) .ready() 또는 내부 기능/콜백.

간단히 말하면 다음과 같습니다. - $(document).ready(...) 섹션 끝 아래로 이동하십시오.

이러한 종류의 오류는 완전히 드문 것은 아니기 때문에 jQuery를 사용하면 $ (document) .ready() 콜백 내에 Javascript를 많이 작성하게되었습니다.

+1

'var check'도 전역 범위로 이동하는 것을 잊지 마십시오. 그렇지 않으면 카운터가 실제로 증가하지 않습니다. – orzechow

관련 문제