0

これは私が持っているものです

var path = $('#sprite').css('background-image').replace('url', '').replace('(', '').replace(')', '').replace('"', '').replace('"', '')
var tempImg = '<img id="tempImg" src="' + path + ' "/>';
$('body').append(tempImg); 
alert($('#tempImg').width());

結果はですが0、コンソールに移動して入力すると$('#tempImg').width()、適切な幅が得られます。

それで、追加はコードの実行後にのみ「ロード」されるように見えます。アイテムが追加された後にコードを使用する必要があります。方法はありますか?

4

2 に答える 2

0

画像が読み込まれるまで待つ必要があります。

var path = $('#sprite').css('background-image').replace('url', '').replace('(', '').replace(')', '').replace('"', '').replace('"', '');
var tempImg = new Image();
tempImg.id = "tempImg";
$(tempImg).load(function(){
    $('body').append(tempImg);
    alert($(tempImg).width());
});
tempImg.src = path;
于 2012-08-02T19:05:36.990 に答える
0

ここでのコメントと回答のおかげで、目標を達成するために達成しました

    frame_width = $('#sprite').width();

var path = $('#sprite').css('background-image').replace('url', '').replace('(', '').replace(')', '').replace('"', '').replace('"', '')
var tempImg = '<img id="tempImg" src="' + path + ' "/>';
    $('body').append(tempImg); 
    $('#tempImg').load(function(){
        alert($("#tempImg").width());
    });

これは機能し、適切な値を警告しましたありがとうございました

于 2012-08-02T19:35:39.600 に答える