2016-01-21 108 views
0

我想为我的图像添加宽度和高度属性;我使用的jQuery在控制台中工作,但不在链接的.js文件中。我已经尝试过,并且不起作用。在控制台中工作,但不在.js文件中

$(document).ready(function() { 
    $('.media-box-image').each(function() { 

     var $width = $('.media-box-image').width(); 
     var $height = $('.media-box-image').height(); 
     var $this = $(this).find('img'); 

     $this.attr('width', $width); 
     $this.attr('height', $height); 
    }); 
}); 

我也试过,但它也没有工作

$(document).ready(function() { 
    $('.media-box-image').each().on('load', function() { 

     var $width = $('.media-box-image').width(); 
     var $height = $('.media-box-image').height(); 
     var $this = $(this).find('img'); 

     $this.attr('width', $width); 
     $this.attr('height', $height); 
    }); 
}); 

我检查了控制台,但似乎一切都很好。我还可以做些什么?

+0

'ready'当DOM准备将闪光。您需要'window'的'load'事件,以便在所有图像完全加载时触发回调。 – Tushar

+0

document.ready,并不意味着图像被加载。如上所述,您可能想要使用加载。小心分享,小提琴? –

回答

0

我已经回答了我的问题:我做了以下内容和它完美的作品

$(window).load(function() { 
    // Run code 
    $('.media-box-image').each(function() { 
     var $width = $('.media-box-image').width(); 
     var $height = $('.media-box-image').height(); 
     var $this = $(this).find('img'); 

     $this.attr('width', $width); 
     $this.attr('height', $height); 
    }); 
}); 
+0

你应该在'each'里面使用'$(this)'而不是'$('。media-box-image')''。 – Tushar

+0

@Tushar - 谢谢 –

1

当在初始页面加载循环中执行文档就绪回调时,页面将不会完成加载图像数据。

由于没有图像数据,图像既没有宽度也没有高度。

使用$(window).on('load'...),而不是$(document).ready(...)

+0

非常感谢我在发布问题后不久就意识到这一点。非常感谢您花时间回答。 –

+0

@zzzzBov非常感谢你的回答。已经花了超过5个小时。 –

相关问题