2013-02-28 118 views
0

我的名字是埃塞基耶爾,我是新的jQuery動態改變img元素的src並獲得寬度多次

我想動態改變的src和獲得圖像的寬度,它的顯示。

我有一個img標籤,帶有一個ID(「idImg」)。

問題是,我的代碼只適用於第一次src更改,而且我必須多次更改(迭代),但我只會向您顯示2個硬編碼更改。

 $("#idImg").attr("src", scrString); //src field changes ok 
     alert($("#idImg").width()) // ok, this is the real width. 
     $("#idImg").attr("src", scrStringANOTHER); //src field changes ok 
     alert($("#idImg").width()) // nope, it keeps the same width than the last one. 

我不知道,只是不能找出問題是什麼

編輯:我知道我必須要等到它加載,但如果我的改變src多不工作倍。我需要多次更改src,並檢查每幅圖像的結果寬度。

任何幫助?

Ty非常多

Ezequiel。

+1

問題是你沒有給圖像的時間來加載。 – 2013-02-28 20:16:01

回答

0
$("#idImg").load(function() 
{ 
    alert($(this).width()); 
}); 

綁定到圖像的加載事件,此時寬度將準備就緒。

解決這個問題的另一種方法是將圖像加載到不同的img中,然後在加載後將其交換出來。請參閱本上預裝的圖像,以便主題:Preloading images with jQuery

+0

是的,我試過了加載事件.. 它打印第一個,而不是其他人。 我必須申報一次吧?它會在那裏每當我更改src – 2013-02-28 20:28:26

0
$(document).ready(function(){ 
    $('#idImg').on('click', function() { 
     $(this).attr('src', 'newimage.png'); 
    }).load(function() { alert(this.width); }); 
}); 

查看完整的例子:http://jsfiddle.net/k9rn7/

+0

這會工作,但問題是我需要多次更改src並獲取倍數「寬度」。 我的意思是,每次我更改src(我有一個「src字符串」數組),我想知道該圖像的寬度。 我該怎麼做? – 2013-03-01 16:26:14