2016-01-21 107 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個小時。 –

相關問題