0

誰かが私がここで間違っていることを理解するのを手伝ってくれますか? IE8 は、これらの画像の幅に関係なく 0 を返します。他の場所でも問題なく動作します。

$('#hometown li img').load(function()
{
    var imgWidth = parseInt($(this).width());
    var percent = (99.99 * (imgWidth / 1600)) + '%';

    console.log(imgWidth) // <- Always 0 in ie8

    $(this).parent().css({ 'width': percent });
});
4

1 に答える 1

1

代わりに、各画像に個別にネイティブ onload をアタッチしてみてください。キャッシュの問題を回避するために、complete プロパティが true の場合は onload をトリガーします。

$('#hometown li img').each(function() {
    this.onload = function() {
        var imgWidth = this.width();
        var percent = 99.99 * (imgWidth / 1600);

        console.log(imgWidth);

        this.parentNode.style.width = percent + '%';
    }
    if(this.complete) this.onload();
});
于 2013-07-18T20:50:29.163 に答える