2011-07-11 8 views
0

イメージコントロールをいくつかのURLで設定したいが、イメージが完全にロードされたときだけイメージがユーザに表示される。以下は私のコードです:イメージコントロールにロードされたイメージを設定する

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 

</head> 
<body> 
    <img id="1" /> 
    <img id="2" /> 
</body> 

<script type="text/javascript"> 

    $("<img/>").attr("src", $("#1").attr("src")) 
       .load(function() { 
        //How to set image 2 with with image which I just loaded 
       }); 
</script> 

</html> 

私はIMG2に同じ画像を設定しようと思って、今どのように、メモリにIMG1の画像をロードしています上。 Img1をimg1のメモリに一度に表示したいので、img1のメモリにイメージをロードしています。

答えて

1

最初に、HTML id要素は数字で始めることができないため、id="1"は無効です(すべてのブラウザで機能しない可能性があります)。私は共通のプレフィックス(例えば、img)を使用することをお勧めします。したがって、1img1になり、2img2になります。

第二には、イベントハンドラの内部で、thisはそう、イベントをトリガした要素に設定されています:

.load(function() { 
    // If you want to use the same element to pre-load multiple images 
    this.src = document.getElementById("img2").src; 

    // Or, if you want to set the pre-loaded image somewhere in the DOM 
    document.getElementById("img2").src = this.src; 

    // Or, if you want to inject this now pre-loaded img tag into the DOM directly 
    $("some_selector").append(this); 
}); 

が働くだろう。

+0

「document.getElementById( "img2")。src = this.src " –

+0

@Rocky - はい、私はあなたに間違いを見て、同じイメージを使用して最初のイメージロードが完了しました。私は私の答えを更新します。 –

関連する問題