後でスクリプトで使用する画像のサイズを取得しようとしています。jQueryを使用してimg要素を直接選択することは問題なく機能しますが、Webkitブラウザーでは機能しません(関数呼び出し時に画像が読み込まれません)。jquery load()関数を使用して、画像の読み込み後に変数が設定されるこのソリューションを実装しようとしています。
変数が希望どおりに設定されていないのはなぜですか?
function startSlider() {
if (1 == 1) {
var bImg = $('#banner img');
var bWidth = 111, bHeight = 222;
$("<img/>")
.attr("src", $(bImg).attr("src"))
.load(function() {
bWidth = this.width;
bHeight = this.height;
console.log('inner: ' + this.height);
});
console.log('outer: ' + bHeight);
}
}
$(window).load(startSlider(skin));
出力
outer: 222
inner: 333
ソースの例
<div id="banner">
<img src="/path/to/image.jpg" />
</div>