2

だから私は動的に画像を作成しており、画像の寸法を取得したいと考えています。画像がDOMに添付される前にこれを行うことは可能ですか? 現時点で私はこれをやっています:

 var arrow = $('<img src="' + parameters.arrowRight + '" />');
 arrow.load(function() {  
      console.log("size: " + $(this).height() + " " + $(this).width());
  });

ただし、高さと幅は両方ともゼロとして報告されます。firebugでGETリクエストを見ることができるので、画像は実際にフェッチされています。

4

2 に答える 2

1

いいえ。DOM にアタッチされるまで、要素のサイズを取得することはできません。

回避策は、画像に css: を与えることですmargin-left: -10000px。その後、追加できますが、表示されません。次に、その寸法を取得し、必要に応じてそれを処理できます。

于 2011-11-24T11:29:43.107 に答える
0

たぶんこれが役立ちます:

http://api.jquery.com/load-event/

このメソッドは、.bind('load', handler) のショートカットです。

load イベントは、要素とすべてのサブ要素が完全に読み込まれると、要素に送信されます。このイベントは、URL に関連付けられた任意の要素 (画像、スクリプト、フレーム、iframe、および window オブジェクト) に送信できます。

たとえば、単純な画像を含むページを考えてみましょう:

<img src="book.png" alt="Book" id="book" />

イベント ハンドラーは画像にバインドできます。

$('#book').load(function() {  
   // Handler for .load() called.  
});  
于 2011-11-24T11:46:51.240 に答える