我正在使用ajax来允许用户过滤目标div(var target
)中显示的内容。
当内容加载时,我会显示一个包含加载程序图像的div ('#loader')
。
然而,当完成ajax调用时,IE不像其他浏览器那样重新隐藏加载器。
它还将setTimeout()调用(在ajax回调中)标识为“无效参数”。
如果我没有发现这种令人困惑的话,我不会在这里问。谢谢!
CODE:
function run_ajax() {
$.ajax({
url: 'artworks_ajax',
beforeSend: function(){
target.empty();
$('#loader').fadeIn();
},
complete: function() {
$('#loader').fadeOut('fast')
},
data: {
'select' : 'artworks',
'artwork-filter': JSON.stringify(filter)
},
success: function(data) {
target.hide();
target.html(data);
fireMasonry();
reloadMasonry(); // masonry needs reminding how big its div is
setTimeout(
fadeUp()
, 1000); // pause necessary to give masonry time to fix itself in place
}
});
}
答案 0 :(得分:2)
这里最后有一个分号丢失:
$('#loader').fadeOut('fast')
此外,setTimeout
的第一个参数应该是一个函数,而在这里你调用函数并使用它的返回值。假设fadeUp
是一个自由函数,它应该是这样的:
setTimeout(fadeUp, 1000);
答案 1 :(得分:2)
如果由于某种原因仍然存在问题,您可以将完成移至ajax调用之后:$.ajax({ajax_stuff_goes_here}).complete(function() {$('#loader').fadeOut('fast');});