我正在使用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
如果有人知道这件事,请帮助我。
答案 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);