我使用下面的错误功能隐藏似乎没有加载的外部图像。 但是图像很容易隐藏,我认为这是因为函数执行速度很快。 Jquery有没有办法将函数延迟两秒?
$(".display li img").error(function () {
$(this).parent().parent().hide("fast");
pos3 = $(this).attr("id");
reportrefcam();
});
答案 0 :(得分:2)
我可能会从另一边做。等待页面load
事件,然后检查所有图像。检查意味着,查看图片是否有width
和height
,如果不是最有可能的话。
$( window ).on('load', function() {
$( '.display li img' ).each(function() {
if( (!this.width || !this.height) ) {
pos3 = $( this ).attr( 'id' );
reportrefcam();
$( this ).hide( 'fast' );
}
});
});
当您加载整个图像+ iframe时,窗口load
事件最终会触发。因此,如果图像在此时没有尺寸,那么这是一个保存的赌注。它可以打破。
答案 1 :(得分:1)
使用setTimeout
方法
$(".display li img").error(function () {
var self = $(this);
setTimout(function(){
self.parent().parent().hide("fast");
pos3 = self.attr("id");
reportrefcam();
}, 2000);
});
答案 2 :(得分:0)
您可以使用delay()来延迟执行jQuery函数,或者只需使用setTimeout()。目前尚不清楚你需要延迟什么,所以我不知道什么是最好的方法
答案 3 :(得分:0)
一般java脚本:
setTimeout("delayedFunctionName()",1000);
这里“delayedFunctionName()”是要调用的函数,“1000”是时间延迟,以毫秒为单位。