2011-11-30 21 views
1

我正在使用canvas和圖像。在我的流程的某一點上,我必須設置src屬性的形象:在jquery中實現回調成.attr的方式

$("#image").attr("src", "something"); 

然後我這樣做,意味着與圖像搞亂一些處理。但是如果我在.attr()和下一行的呼叫之間沒有輸入alert(),則它不起作用。隨着警報,它工作得很好。我不得不打電話給setTimeout()以便給.attr()一些時間來完成。

$().load因加載圖像不起作用,圖像的src通過單擊進行更改。那麼,有沒有在.attr()中實現回調的方法?如果沒有這樣的方式,這可能是更好的方法來實現這一目標?

在此先感謝

+0

你可以嘗試使用'.replace(用新節點替換DOM節點)'然後安裝'.load()'事件。我沒有嘗試過,但它可能工作。 – zzzzBov

+0

你真的不應該用「.attr()」來設置「src」屬性 - 它在IE中可能根本不起作用。改爲使用「.prop()」。 – Pointy

回答

3

嘗試使用預加載技術:

var imagePreloader = $("<img />").attr("src", "something"); 
imagePreloader.bind('load', function(){ 

    // image has been loaded in your browser cache, now you can 
    // change the source of your real image 
    $("#image").prop("src", "something"); 

}); 
+0

正如我在對這個問題的評論中所說的那樣,由於jQuery 1.6你應該真的使用「.prop()」來設置像「src」這樣的屬性。 – Pointy

+0

我們每天都在學習,感謝您的輸入! – jValdron

+0

感謝你們倆! – Cheluis

0

你能以嶄新的形象代替圖像,而不是改變它的來源?