複雑なAJAXサイトでは、新しく挿入されたDOMオブジェクトのCSS次元、つまり特定のDIVs innerWidthの値を取得する必要がありますロードした画像を親の大きさにリサイズすることができます。jQuery.load()を介してDOMに挿入されたオブジェクトの寸法(innerWidth)を取得する方法
私はjQuery.load() -POSTを経由してDOMに新しいものをロードしています:
$('DIV#newStuff').load('insertthis.ajax', {id:1}, function() {
var iMaxWidth = $('DIV#widthNeeded').innerWidth();
console.log(iMaxWidth);
});
問題:予想通りは、Firefox(PaleMoon)9.2 => "442" を返します。 Maxthon 3とChrome 17 => "0"またはもっと高い値 "736"を返します。 両方ともWin7。 jQuery 1.7.1
同じ結果を持つjQuery.actual() - プラグインも試しました。
クリアするには:これは、実際の機能の非常に簡単な抽出です。私は中心的な問題を示してみようとしています。読み込まれたスクリプトはプレーンなPHPです(拡張子を.ajaxに変更しました)。
溶液(回避策): は、追加のsetTimeout(と成功のコールバックのコードをラッピング) - 関数は、一部のブラウザにproberly新しくレンダリングされたDOM-ものの大きさを計算するために悲惨な必要な時間を与えます。あなたが不一致のこれらの種類を取得することだろう、なぜ私はすぐに見ることができない
:
$('DIV#newStuff').load('insertthis.ajax', {id:1}, function() {
setTimeout(function() {
var iMaxWidth = $('DIV#widthNeeded').innerWidth();
console.log(iMaxWidth);
}, 500);
});
PHPとは何が関係していますか? – Gerep
load関数の後にinnerWidthコールを置いている場合(コールバックの直前、アラートを呼び出す直前)には '0'の結果が得られますか? –
@AshleyDaviesいいえ!悪い:私は "null"を取得します。 – maxpower9000